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

请教高手谢谢~~

[复制链接]
发表于 2011-9-13 21:16:40 | 显示全部楼层 |阅读模式 来自 四川成都
function [VM2] = neilijisuanVM2(x,x1,x2,l1)
   VM2=zeros(size(x));
if x>=0&x<=x1
           VM2 = 1/(6*l1)*((-0.5*x1^2+x1*x2-0.5*x2^2)*6*x+(0.5*x1^3-1.5*x1*x2^2+x2^3)*2);
elseif x>x1&x<=x2
           VM2 = 1/(6*l1)*(x^3-3*x1*x^2+(x1*x2-0.5*x1^2)*6*x+2*(x2^3-1.5*x1*x2^2));
       else
           VM2 = 0;
end


这是我的m文件,
当我计算VM2=neilijisuanVM2(0:0.5:14,0,3,3)的时候,得出的结果只有一个值VM2=0;
很不解!我觉得应该是一个1乘29的才对的嘛~谢谢

评分

1

查看全部评分

发表于 2011-9-13 23:45:35 | 显示全部楼层 来自 湖北武汉
Simdroid开发平台
你调用函数的时候,你的x用的是向量,x1,x2为数值。所以你的函数只会运行else下的那一行,因此总是0;
建议你重新看下你的函数的调用格式
回复 不支持

使用道具 举报

 楼主| 发表于 2011-9-14 13:03:45 | 显示全部楼层 来自 四川成都
mhkmars 发表于 2011-9-13 23:45
你调用函数的时候,你的x用的是向量,x1,x2为数值。所以你的函数只会运行else下的那一行,因此总是0;
建 ...

function [vq1] = neilijisuanvq1(x,x1,x2,l1,E,I)
   vq1=zeros(size(x));
if x>=0&x<=x1
           vq1=1/(6*E*I*l1)*((-0.5*x1^2+x1*x2-0.5*x2^2)*x^3+(0.5*x2^3-1.5*x1^2*x2+x1^3)*x^2);
elseif x>x1&x<=x2
           vq1= 1/(6*E*I*l1)*(-0.05*x^5+0.25*x2*x^4-0.5*x2^2*x^3+0.5*x2^3*x^2+(0.75*x1^4-x1^3*x2)*x+0.25*x1^4*x2-0.2*x1^5);
       else
           vq1=1/(6*E*I*l1)*((0.25*x2^4-x1^3*x2+0.75*x1^4)*x-0.2*x1^5+0.25*x1^4*x2-0.05*x2^5);
end

你好,同样的格式  这个M文件运行结果就是1*29的,我知道x是个向量,但我是定义了vq1是和x相同类型的嘛,不是很明白why.  望解答~
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

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

GMT+8, 2024-10-6 08:47 , Processed in 0.032097 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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