2017-04-06 62 views
0

我的問題涉及到想要使用MatLab繪製信息。由於我對平臺相當陌生,所以遇到了很多麻煩。MatLab繪製多個數據集(相同圖)

我想繪製這個信息,x是線性縮放的,y是對數縮放的。我也想積2^n,其中低於

n   Original   Improvement 1  Improvement2 
    10  1,198,861    2,127,920   1,900,916 
    30  2,501,876    2,086,086   8,255,021 
    50  69,448,535    18,677,001   3,429,279 
    70  67,754,271    22,712,979   33,856,555 
    90  282,232,302    33,509,532   80,645,811 
110 52,066,961,922   5,452,933,038  1,544,349,121 
130 13,900,123,332   67,027,087,188  3,786,963,385 

我需要的,以驗原件,Improvement1的不同的價值觀和improvement2和2^N

來繪製此日期所提供的信息日誌n將成爲此圖的軸。

任何幫助,非常感謝。

+0

你需要的命令是這樣的'semilogy'和'hold'。請在https://www.mathworks.com/help/matlab/ref/semilogy.html和https://www.mathworks.com/help/matlab/ref/hold.html查看他們的文檔。 –

回答

1

使用semilogy或只是log,取決於你想要怎樣的y軸的樣子:

data = [ 10  1198861    2127920   1900916 ; 
    30  2501876    2086086   8255021 ; 
    50  69448535    18677001   3429279 ; 
    70  67754271    22712979   33856555 ; 
    90  282232302    33509532   80645811 ; 
    110 52066961922   5452933038  1544349121 ; 
    130 1390]; 

n = data(:,1); 
Original = data(:,2); 
Improvement1 = data(:,3); 
Improvement2 = data(:,4); 
nsqr = n.^2; 

subplot(121); 
semilogy(n,Original,n,Improvement1,n,Improvement2,n,nsqr); 
xlim([n(1) n(end)]); 
legend('Original','Improvement1','Improvement2','n^2'); 
title('using semilogy') 

subplot(122); 
plot(n,log(Original),n,log(Improvement1),n,log(Improvement2),n,log(nsqr)); 
xlim([n(1) n(end)]); 
legend('Original','Improvement1','Improvement2','n^2'); 
title('using log') 

enter image description here

+0

無需重複'因爲它對所有的y變量都是一樣的,所以在'semilogy'(或'plot')中是'n'。你可以寫'semilogy(n,[Original,Improvement1,Improvement2 nsqr])而不是 – NLindros

+0

非常感謝!這正是我所尋找的。希望你有美好的一天;希望你今天過得很開心!乾杯 –