首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 其他开发语言 >

Matlab中 请问以下程序怎么简化

2012-02-28 
Matlab中 请教以下程序如何简化t0:2*pi/1000:2*piy1sin(t)y2.2*sin(2*t)y3.1*sin(3*t+.25*pi)y4.

Matlab中 请教以下程序如何简化
t=0:2*pi/1000:2*pi;y1=sin(t);y2=.2*sin(2*t);y3=.1*sin(3*t+.25*pi);y4=.15*sin(4*t+.3*pi);y5=.8*sin(5*t+.3*pi);
y=y1+y2+y3+y4+y5;
x=y;
figure(1)
plot(t,x);
h=fft(x,1001);
ang=angle(h);
z=abs(h)/500;
yy=0*sin(t);
for i=1:950;
yy=yy+z(i)*cos((i-1)*t+ang(i));
end
hold on
plot(t,yy,'r')
f0=z(1)*cos(0*t+ang(1));
f1=z(2)*cos(1*t+ang(2));
f2=z(3)*cos(2*t+ang(3));
f3=z(4)*cos(3*t+ang(4));
f4=z(5)*cos(4*t+ang(5));
f5=z(6)*cos(5*t+ang(6));
f6=z(7)*cos(6*t+ang(7));
f7=z(8)*cos(7*t+ang(8));
f8=z(9)*cos(8*t+ang(9));
f9=z(10)*cos(9*t+ang(10));

主要是f0到f9的算法,且最后能画出f0到f9的图形

[解决办法]
给你个提示,eval函数


eval
Execute string containing MATLAB expression 

Syntax
eval(expression)
[a1, a2, a3, ...] = eval('myfun(b1, b2, b3, ...)')
[解决办法]
楼上说得对,可以用for循环来做,用eval来调用相应的字符串函数!

热点排行