2013-04-22 246 views
1

我的任務是繪製2個算法的計算時間成本,以他們解決的矩陣的大小爲函數。在Matlab中繪製矩陣

我到目前爲止所做的是做了一個方法,做每個算法x次數和存儲時間。

最後,我有一個矩陣像這樣:

T = 

1.248008000000027e-003 9.360059999994519e-004 
7.488048000004710e-003 1.456009333332986e-002 
4.992032000000109e-002 2.808017999999492e-002 
1.809611600000039e-001 1.489809550000018e-001 
5.740836800000352e-001 5.865637599999672e-001 
4.748670439999978e+000 4.714350220000005e+000 

與第一行是的2種算法大小20×20的矩陣的計算成本,第二行的成本2算法的矩陣大小爲40x40,然後爲80x80,160x160,320x320和640x640。

2列幾乎相同的原因是因爲我還沒有寫第二個算法,只用了第一個算法2次。

我現在需要做的是繪製兩個算法的成本,在同一幅圖中,隨着矩陣大小的增加而變化。 然而,我仍然堅持劇情的語法,並且我一直沒有得到一個漂亮的身材。 任何人都可以幫忙嗎?

+0

你能告訴我們,你已經嘗試與失敗的碼? – Dan 2013-04-22 14:06:19

回答

1

如何

T = [ 
    1.248008000000027e-003 9.360059999994519e-004 
    7.488048000004710e-003 1.456009333332986e-002 
    4.992032000000109e-002 2.808017999999492e-002 
    1.809611600000039e-001 1.489809550000018e-001 
    5.740836800000352e-001 5.865637599999672e-001 
    4.748670439999978e+000 4.714350220000005e+000]; 


figure, hold on 

% column 1 
plot(1:size(T,1), T(:,1), 'r.-'); 

% column 2 
plot(1:size(T,1), T(:,2), 'b.-'); 

% nicer labels at the X-tick locations 
set(gca, 'xticklabel', {... 
    '20×20',... 
    '40×40',... 
    '80×80',... 
    '160×160',... 
    '320×320',... 
    '640×640'}... 
); 

% finish plot 
grid on 
ylabel('Execution time required [s]') 
xlabel('Matrix size [-]') 

legend(... 
    'Algorithm 1',... 
    'Algorithm 2',... 
    'location', 'NorthWest'... 
); 

結果:

enter image description here

+0

謝謝!事實證明,我對某些事情不甚瞭解。這工作很好。 – Sven 2013-04-22 14:29:37

0

如何只此:

plot(T) 

,或者如果你想要的x值,確定X,然後

plot(x,T(:,1)) 
hold all 
plot(x,T(:,2)) 
0

如果第一列屬於第一算法不同的計算時間大小,第二列屬於第二個算法的計算時間,您可以精美地繪製它:

假設存儲的計算時間的矩陣是時間計算

figure(1) 

plot(TimeComputation(:,1),'-.r') 

hold on 

plot(TimeComputation(:,2),'--.b') 

legend('Function 1','Function 2') 

讓我知道如果您有任何進一步的問題!

+1

嘗試使用大括號'{}'按鈕來格式化代碼。 – 2013-04-22 14:03:56

+0

謝謝,這與下面的建議非常相似,但那個更加廣泛。 – Sven 2013-04-22 14:30:09