在matlab中绘制循环结果
我有一个关于在Matlab中绘制循环结果的问题。这是代码在matlab中绘制循环结果,matlab,loops,plot,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之间的时间绘制一个图。但是,在运行代码后,
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之间的时间绘制一个图。但是,在运行代码后,该图始终没有显示任何内容。有人能帮我找出原因吗?这是因为您在
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')
谢谢你的回复。但这仍然不起作用。它将弹出10个图形窗口,每个窗口都不包含任何曲线。仍然会弹出10个窗口,其中没有任何内容。我希望这十个值在一个带曲线的图形窗口中。我认为弹出的十个窗口是因为“plot语句”在循环中,意思是“plot”十次。我为愚蠢的代码感到非常抱歉。。。更正它。。。浪费了你和我的时间…哈哈,还是不行。我也试过这种方法。它会说“内部矩阵尺寸必须一致。”指向“VS”表达式。我知道。。。您应该尝试编辑的代码。。。这很有效。。。但我不知道这是否是你想要的。如果您不理解MATLAB中
*
和*
之间的区别,请告诉我。因为这是我做的编辑。