1

我有一个关于在 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 的时间绘制一个图。但是,在运行代码后,该图仍然没有显示任何内容。谁能帮我弄清楚为什么?

4

1 回答 1

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')
于 2013-03-07T02:53:31.940 回答