2013-03-07 61 views
0
for t=0:0.1:10; 
VS=3*exp(-t/3).*sin(t*pi); 

    if VS>0 
     VL(t+1)=VS; 
    else 
     VL(t+1)=0; 

    end 
end 


plot(0:100,VL); 
xlabel('Time(s)') 
ylabel('Across Voltage(V)') 
title('Across Voltage Vs Time') 

如何根据VL(基于与上面表达的VS的关系)对t(从0到10,增量0.01)绘制该图形?从循环绘图

总是从matlab中得到错误“下标索引必须是真正的正整数或逻辑”。

谢谢。

+1

见[这里]( http://stackoverflow.com/questions/15262163/plotting-a-result-from-a-loop-in-matlab/15262205#15262205)的答案。 – 2013-03-07 06:38:02

+0

哈哈@Parag那就是他的回复xD – Cashew 2013-03-07 06:39:26

+0

@Cashew ya我知道一旦看到问题 – 2013-03-07 07:54:37

回答

1

脚本中存在问题。请注意,t以0.1的间隔定义。因此,它是一个真正的变量,不能用作下标指示。以解决

的一种方式是

1)写入CONT = 0;在循环之前。

2)写在循环

3)取代VL的开头CONT = CONT + 1(在循环内两个地方T + 1)由VL(续)

+0

太棒了!非常感谢! – Kevin 2013-03-07 07:07:19