dingxinran 发表于 2012-9-29 21:03

单自由度振动系统幅频响应曲线编程问题

%幅频响应曲线计算
%Y为频率比;B为振幅;j=阻尼比
Y=[];
B=[];
j=;
for k=1;length(j)
    for i=0:0.01:2
      y=i;
      b=1/(((1-y^2)^2+(2*j(k)*y)^2)^(1/2));
      B=;
      Y=;
    end
    plot(Y,B);
    axis();
    hold on;
Y=zeros();
B=zeros();
end

请问下这个程序哪里不对了?怎么只能出现一根曲线呢

9ofnet 发表于 2012-9-29 21:50

ChaChing 发表于 2012-10-13 22:57

1.若是编程问题, 版块好像不适当
2.for k=1;length(j)改为for k=1:length(j)
3.ref http://forum.vibunion.com/thread-116684-1-1.html
4.多用向量方式, 少用for loop

ChaChing 发表于 2012-10-13 23:05

本帖最后由 ChaChing 于 2012-10-13 23:12 编辑

多用向量方式, 少用for loop
Ref : [原创] 提高matlab运行速度的一点心得 http://forum.vibunion.com/thread-25305-1-1.html
[原创] 提高matlab运行速度的一点心得(之二) http://forum.vibunion.com/thread-26449-1-1.html
[原创]提高matlab运行速度和节省空间的一点心得(之三) http://forum.vibunion.com/thread-33199-1-1.html
from http://home.vibunion.com/blog-63979-18250.html


clc; clear
j=; y=0:0.01:2;
for k=1:length(j)
    b=1./(((1-y.^2).^2+(2*j(k)*y).^2).^(1/2));
    plot(y,b); axis(); grid on; hold on;
end应该还可更好些, 没太多时间试, 自行试下吧
页: [1]
查看完整版本: 单自由度振动系统幅频响应曲线编程问题