我注意到,如果我的 Matlab 代码必须显示图例,则运行时间会显着增加。
这是一个例子:
clear all
close all
clc
% legend test
x = [0:1:100];
y = x.^(3.123);
figure('Name', 'X-Y and X-X plot')
plot(x,y)
hold all
plot(x,x)
legend('1', '232')
运行时间为 1.1 秒。没有该行的相同代码legend('1', '232')
的执行时间为 0.4 秒。我觉得很奇怪,一个简单的传说会增加这么多的运行时间。
使用分析器我发现主要负责时间增加的函数被调用graphics/private/texmex
。它的自时间为 0.12 秒,被调用 4 次。当我不创建图例时,不会调用此函数。
有没有办法加快我的代码,同时仍然在图中生成图例?
我在 Mac OS 10.8.3 上运行 64 位 Matlab 2012b。
当我运行示例中的代码时,set(0, DefaultTextInterpreter, 'none')
函数texmex
由 调用tex>localCallTeXParser
,由 调用scribe.legend.methods>strsize
,等等......:
graphics/private/texmex
tex>localCallTeXParser
scribe.legend.methods>strsize
scribe.legend.methods>getsizeinfo
scribe.legend.methods>getsize
scribe.legend.methods
scribe.legend.legend