声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2699|回复: 5

[编程技巧] Vectors must be the same lengths 出错求助

[复制链接]
发表于 2008-5-3 15:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
子程序:
function dy=odey(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dy(2)=0.1*sin(t)-0.04*y(2)-4*y(1);
function dx=odex(t,x)
dx=zeros(2,1);
dx(1)=x(2);
dx(2)=0.1*sin(t)+4-0.04*x(2)-4*x(1);
主程序:
[t,x]=ode45('odex',[0 10],[0 0]);
[t,y]=ode45('odey',[0 10],[0 0]);
plot(x(:,1),y(:,1));
运行时出现:??? Error using ==> plot
Vectors must be the same lengths.
请问什么原因,时间段相同,但算出来的x,y数组长度却不一致。

[ 本帖最后由 eight 于 2008-5-4 21:34 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-5-3 17:25 | 显示全部楼层
ode45可以采用自动步长技术,所以相同的时间段会有不同的x,y长度。
 楼主| 发表于 2008-5-3 20:18 | 显示全部楼层

回复 2楼 的帖子

那怎么才能设定x跟y在相同时间段内具有相同长度?
 楼主| 发表于 2008-5-4 15:19 | 显示全部楼层

回复 3楼 的帖子

各位网友帮帮忙啊:@(
这个问题应该不难吧
发表于 2008-5-4 15:31 | 显示全部楼层
  1. [t,x]=ode45('odex',[0,.01,10],[0 0]);
  2. [t,y]=ode45('odey',[0,.01,10],[0 0]);
  3. plot(x(:,1),y(:,1))
复制代码

评分

1

查看全部评分

发表于 2008-5-4 16:24 | 显示全部楼层


校长给的代码应修改一下,具体如下:

t=0:0.01:10;
[t,x]=ode45('odex',t,[0 0]);
[t,y]=ode45('odey',t,[0 0]);
plot(x(:,1),y(:,1))

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-21 00:47 , Processed in 0.068382 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表