MATLAB错误:“向量必须是相同的长度”

问题描述 投票:1回答:2

我收到的错误是“向量必须长度相同”,但我不确定原因。我基本上试图绘制关于时间的分段函数。我之前使用“分段”运算符遇到了一些其他问题,所以我决定使用if语句。

figure(1);        

t = linspace(0, 30, 200); 

v_wind1 = linspace(0, 20, 100);      
v_wind2 = linspace(20, 0, 100);   

if (0 <= t < 15)                         
    v_wind = v_wind1;                        
elseif (15 <= t <30)                        
    v_wind = v_wind2;                     
end        

plot(t, v_wind);    
matlab vector
2个回答
1
投票

只需连接v_wind1v_wind2

figure(1);        

t = linspace(0, 30, 200); 

v_wind1 = linspace(0, 20, 100);      
v_wind2 = linspace(20, 0, 100);   

v_wind = [v_wind1 v_wind2];    

plot(t, v_wind); 

这应该做的伎俩!?你想要那个结果,不是吗?

enter image description here


-2
投票

简单地使用:索引

t = linspace(0, 30, 200); 

v_wind1 = linspace(0, 20, 200);      
v_wind2 = linspace(20, 0, 200);   

v_wind = zeros(size(t)) ;
idx = t >= 0 & t<15 ;
v_wind(idx) = v_wind1(idx) ; 

idx = t >=15 & t < 30 ;
v_wind(idx) = v_wind2(idx) ; 

plot(t,v_wind) 
© www.soinside.com 2019 - 2024. All rights reserved.