单自由度振动系统幅频响应曲线编程问题
%幅频响应曲线计算%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
请问下这个程序哪里不对了?怎么只能出现一根曲线呢
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: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]