作业帮 > 综合 > 作业

matlab subs错误求解

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/29 22:32:31
matlab subs错误求解
先上一个例子:
>>syms x Vx y Vy z Vz;
>>syms b d;
>>Xstate = [x Vx y Vy z Vz b d].';
>>f = [x+T*Vx;
Vx;
y+T*Vy;
Vy;
z+T*Vz;
Vz;
b+T*d
d];
>>X=zeros(8,1);
>> Xp=subs(f,Xstate,X)
然后报错了:
Error using ==> sym.subs>celleqn
The input cells must be of the same size.
Error in ==> sym.subs at 206
NEWf = maple(['eval(subs(' celleqn(OLDexpr,CaQ) ',' char(OLDf) '));']);
如果换成:
Xp=subs(f,{x Vx y Vy z Vz b d},X)
就不会出错,那怎么样才能使用Xstate,并把它的元素当作自变量进行替换呢?
matlab subs错误求解
好吧,没做验证,只是猜想,{...}是元胞矩阵,而xstate是一个数值矩阵
直接带入xstate={.},或者用mat2cell将xstate换成元胞矩阵试试
再问: 还是自己解决了。其实不是细胞矩阵的问题,因为这样写也是对的: Xp=subs(f,[x Vx y Vy z Vz b d],X) 其实问题出在变量应该是一个行向量,而Xstate是一个列向量,所以提示维数错误。这样改就可以了: Xp=subs(f,Xstate.',X)