从matlab中的循环绘制结果

时间:2013-03-07 02:48:27

标签: matlab loops plot

我有一个关于在Matlab中绘制循环结果的问题。这是代码。

for t=0:1:10;
  VS=3*exp(-t/3)*sin(pi*t);
  if VS>0
     VL=VS
  else VL=0

  end

end

plot(t,VL)
xlabel('Time(s)')
ylabel('Across Voltage(V)')
title('Across Voltage Vs Time') 

我想根据上面表达式的电压与0到10的时间绘制一个数字。但是,在运行代码后,该数字一直没有显示。任何人都可以帮我找出原因吗?

1 个答案:

答案 0 :(得分:0)

这是因为您正在for循环之外进行绘图。所以在那个时候t不是你想象的向量,它是一个标量值t=10。此外,VL取决于执行。因此,您应该将t形成为向量并执行以下操作:

k=0;
for t=0:1:10;
k=k+1;
  VS=3*exp(-t/3)*sin(pi*t);
  if VS>0
    VL(k,1)=VS
  else VL(k,1)=0
  end
end
plot(0:10,VL)
xlabel('Time(s)')
ylabel('Across Voltage(V)')
title('Across Voltage Vs Time')