查看: 1717|回复: 2|关注: 0

[已解决] 要串联的数组的维度不一致的问题

[复制链接]

新手

7 麦片

财富积分


050


3

主题

5

帖子

0

最佳答案
代码如下

function sys = mdlDerivatives(t,x,u) % Ref to PID411
m1 = 1 ; me = 2 ;
l1 = 1;
lc1 = 0.5;
lce=0.6;
I1 =0.12;
Ie= 0.25;
Qe = 30*pi/180; %0.6;
a1= I1 + m1 * lc1^2+Ie + me * lce^2 + me * l1^2 ;
a2 = Ie + me * lce^2 ;
a3 = me * l1 * lce * cos(Qe);
a4 = me * l1 * lce * sin(Qe) ;
M11 = a1+ 2 * a3 * cos(x(3))+ 2 * a4 * sin(x(3));
M22 = a2;
M21 = a2 + a3 * cos(x(3)) + a4 * sin(x(3));
M12 = M21;
M= [M11 M12;M21 M22];
h= a3 * sin(x(3)) - a4 * cos(x(3));
q1 = x(1);dq1 = x(2);
q2 = x(3);dq2 = x(4);
q= [q1;q2];
dq= [dq1;dq2];
tol = [u(1);u(2)];
hq=[-h*x(4)-h* (x(2) + x(4)) ;h * x(2) 0];
S = inv(M) * (tol - hq * dq);
sys(1)= x(2);
sys(2) =S(1);
sys(3)= x(4);
sys(4)= S(2);


说串联的数组的维度不一致 找不出来哪里有问题
求帮助
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2364

帖子

716

最佳答案
  • 关注者: 198
发表于 2020-5-11 01:15:46 | 显示全部楼层 |此回复为最佳答案
hq=[-h*x(4)-h* (x(2) + x(4)) ;h * x(2) 0];
这句的问题。比如x是一个含有四个元素的输入向量,那么-h*x(4)-h* (x(2) + x(4))算出来是一个元素,它构成第一行;但是h * x(2) 0是两个元素(h * x(2)和0),导致第二行比第一行多了一个元素,维度不匹配,会报错
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


3

主题

5

帖子

0

最佳答案
 楼主| 发表于 2020-5-11 23:56:30 | 显示全部楼层
TouAkira 发表于 2020-5-11 01:15
hq=[-h*x(4)-h* (x(2) + x(4)) ;h * x(2) 0];
这句的问题。比如x是一个含有四个元素的输入向量,那么-h*x(4 ...

好的 问题已经解决了 谢谢解答
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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