Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlab中绘制循环结果_Matlab_Loops_Plot - Fatal编程技术网

在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之间的时间绘制一个图。但是,在运行代码后,

我有一个关于在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并不像你们所期望的那个样是一个向量,它是一个标量值,
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中
*
*
之间的区别,请告诉我。因为这是我做的编辑。