2013-02-22 84 views
2

我想修改一個函數的參數,然後在循環中繪製它,並且我遇到了問題。問題是,我需要的標籤和不同顏色的每個情節多次繪製同一圖形的不同版本

喜歡的東西:

hold on 

for n = N 

for t = Time_inv 

    error = func(n, t); 
    error_array_2(i) = error; 
    i = i + 1; 

end 
    plot (Time_inv, error_array_2); 
    i = 1; 
end 

我是新來的Matlab的,但與其他語言

回答

1

有關一個情節,使用多條線路經歷hold all也許是legend

figure 
hold all 
plot(rand(1,10)) 
plot(rand(1,10)) 
plot(rand(1,10)) 
legend('label 1', 'label 2', 'label 3') 

對於一個圖中的多個圖,使用subplot

figure 
subplot(1,2,1) 
plot(rand(1,10)) 
subplot(1,2,2) 
plot(rand(1,10)) 

對於不同圖中的地塊,請使用figure

figure 
plot(rand(1,10)) 
figure 
plot(rand(1,10)) 
+0

這是對1個窗口中的所有情節的要求,因爲圖需要比較 – user929404 2013-02-22 13:50:04

+0

@ user929404見我的更新。 – shoelzer 2013-02-22 13:55:58

0

有不同的顏色和標籤對於每個圖形,你可以創建一個彩色地圖和標籤的電池陣列:

h = zeros(1, length(N)) 
name = cell(1, length(N)) 

cm = hsv(length(N)); 
for n = N 
    name{n} = ['condition ' num2str(n)]; 
    i = 1 
    for t = Time_inv 
     error = func(n, t); 
     error_array_2(i) = error; 
     i = i + 1; 
    end 
    h(n) = plot (Time_inv, error_array_2, 'color', cm(n,:)); 
    hold on  
end 

legend(h, name); 

既然你指出,你是新的MATLAB,我只是將提到你可以不需要迭代器i,因爲函數通常在矩陣上工作。因此,你的腳本可以被縮短(節選):

for n = N 
    ... 
    error_array_2 = func(n, Time_inv); 
    ... 
end 
相關問題