2013-04-22 208 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