在用matlab求解微分方程组时定义了函数,我知道返回变量必须是列向量,给初值和时间时也都是列向量,可不知道什么原因,运行后的结果成了行向量显示,为什么会这样呢?
附程序:
定义的函数:
function dx=apolloeq(t,x)
%apolloeq方程
mu=1/82.45;mu1=1-mu;r1=sqrt((x(1)+mu)^2+x(3)^2);r2=sqrt((x(1)-mu1)^2+x(3)^2);
dx=[x(2);
2*x(4)+x(1)-mu1*(x(1)+mu)/r1^3-mu*(x(1)-mu1)/r2^3;
x(4);
-2*x(2)+x(3)-mu1*x(3)/r1^3-mu*x(3)/r2^3];
调用语句:
options=odeset;options.RelTol=1e-6;...
x0=[1.2;0;0;-1.04935751];tic,[t,y]=ode45(@apolloeq,[0,20],x0,options)
显示结果(部分):
y =
1.2000 0 0 -1.0494
1.2000 -0.0126 -0.0072 -1.0493
1.1998 -0.0252 -0.0144 -1.0489
1.1996 -0.0378 -0.0216 -1.0484
1.1993 -0.0504 -0.0288 -1.0477
1.1978 -0.0906 -0.0518 -1.0438
1.1953 -0.1304 -0.0748 -1.0380
它的结果y是一个1873×4的数组,按道理说不应该是4×1873的吗?
matlab会为了方便显示而将本应该是列向量的结果显示为行向量吗?
答案:2 悬赏:0
解决时间 2021-12-04 08:02
- 提问者网友:伪善人独行者
- 2021-12-04 03:29
最佳答案
- 二级知识专家网友:陪衬角色
- 2021-12-04 03:48
我觉得是你理解上的问题吧,返回值依照你需要返回的变量而定。从来没有听说返回变量必须是列向量啊。
全部回答
- 1楼网友:虚伪的现实
- 2021-12-04 04:01
matlab中的颜色可以使用三维向量表示,为[r g b]
其中各个元素的取值在0到1之间
r为红色,g为绿色,b为蓝色
它和我们常用的使用256表示的颜色是一一对应的。
红色:[1 0 0]
绿色:[0 1 0]
蓝色:[0 0 1]
其他的可以对照256表示的颜色来设置。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |