找回密码
 注册
Simdroid-非首页
查看: 40|回复: 1

麻烦高手指导下这个程序

[复制链接]
发表于 2012-5-31 03:03:55 | 显示全部楼层 |阅读模式 来自 北京
本帖最后由 mgh_mgh 于 2012-5-31 03:07 编辑

下面是振型叠加法计算模态坐标的计算式:
t=0:0.05:5;
    %广义坐标位移
    y1=exp(-kesi*w1*t)*(yj0(1)*cos(wdj(1)*t)+(yj0_dev(1)+kesi*wdj(1)*yj0(1))*sin(wdj(1)*t)/wdj(1));
    y2=exp(-kesi*w2*t)*(yj0(2)*cos(wdj(2)*t)+(yj0_dev(2)+kesi*wdj(2)*yj0(2))*sin(wdj(2)*t)/wdj(2));
    %物理坐标位移x=fan*y
    x_1=fan(1,1)*y1+fan(1,2)*y2;
    x_2=fan(2,1)*y1+fan(2,2)*y2;
    figure(6)
plot(t,x_1,'r:',t,x_2,'b')
grid
xlabel('时间(s)');
ylabel('位移响应(m)');

其中的yj0(1),wdj(1)等都是取矩阵中的具体数值,但为什么用100个时间点去计算时,程序告诉说是内部矩阵维数不匹配?
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Error in ==> disp at 20
    y1=exp(-kesi*w1*t)*(yj0(1)*cos(wdj(1)*t)+(yj0_dev(1)+kesi*wdj(1)*yj0(1))*sin(wdj(1)*t)/wdj(1));
明明代数式中变量都是具体数值了,但为什么会出现矩阵的疑问?何故?这种情况下如何修改?谢谢。小问题,见笑了。
发表于 2012-5-31 03:26:18 | 显示全部楼层 来自 英国
Simdroid开发平台
虽然其他变量是单个具体数值,但别忘了你的t是个1*101的矩阵。
*换成.*, 否则默认的是矩阵乘法而不是元素相乘。
1*101的矩阵乘以1*101的矩阵,就会内标不相等而报错。
回复 不支持

使用道具 举报

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

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-7-5 22:38 , Processed in 0.026989 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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