PDA

查看完整版本 : [MATLAB基础] 请教一些问题,刚刚接触matlab


twism110
2009-10-14, 10:51
我要画一个f(t)的图像 ,程序如下:

clear; % clear all variables
clf; % clear all figures

I = 150;
A=1.7;
T=100;
N=5; % number of N
t=0 : 0.001 : 3*T;
f = zeros(1,length(t));
for k=1 : length(t)
time_t=t(k);
for n=1:2:N
f(k)= f(k)+(2*A)/(pi*n)*sin(2*pi*(n/T)*time_t);
end
f(k)= f(k)+A/2;
end

plot(t,f);
grid;
hold;
Original_x = [0 0 T/2 T/2 T T 1.5*T 1.5*T 2*T 2*T 2.5*T 2.5*T 3*T];
Original_Y = [0 A A 0 0 A A 0 0 A A 0 0];
plot (Original_x,Original_Y,'-r'); %plot original square wave
xlabel('t (second)');
ylabel('f (t)');

--------------------------------------------------------------------------

t=0 : 0.001 : 3*T % 这里代表我要画的f(t)的3个周期,这个我知道

f = zeros(1,length(t)); % 1.f在这里代表什么? 2.zeros(1,length(t))是什么意思?
3. 为什么从1开始, 还有length(t)又是什么?

for k=1 : length(t)
time_t=t(k); % 4. time_t是什么?是定义图像在X轴的变化吗?

请高手详细指点! 谢谢

twism110
2009-10-14, 11:55
等高手解答...

高手你在哪里

bugauto
2009-10-14, 12:45
这些问题都是matlab的基本操作。
zeros是生成全0矩阵,zeros(a,b),a是矩阵的行数,b是矩阵的列数。你这里的作用就是生成一个size与t矩阵相同的全0矩阵。

bugauto
2009-10-14, 12:52
for k=1 : length(t)
time_t=t(k); % 4. time_t是什么?是定义图像在X轴的变化吗?

这句是简单的赋值而已
这个程序写的复杂了,这里的循环语句可以采用矩阵操作来代替。
matlab程序尽量用矩阵操作来完成