Effacer les filtres
Effacer les filtres

Huge Execution Time Discrepancy with line() Command

1 vue (au cours des 30 derniers jours)
Eric
Eric le 14 Jan 2012
The following code takes no more than 4 seconds to execute:
figure(statfig);
set(gcf,'Position',get(0,'ScreenSize').*[1 1 0.5 1]);
titlestr = [test ' - Statistics - ' num2str(rpmval) 'RPM - ' samplestr ' - ' upper(sensor)];
subplot(size(detdata,2),1,var);
plot(detdata(:,var)');
hold on;
% line([1:length(detdata)],avg_env_sample(var),'Color','r');
% line([1:length(detdata)],avg_env(var),'Color','g');
hold off;
% legend('Detrended Data','Envelope','Envelope Mean');
title([titlestr ' - ' varname]);
xlabel('Sample [n]');
ylabel([varname ' [g]']);
set(gcf,'Name',titlestr);
With the commented code uncommented, execution time goes up to two minutes. Similar code is executed 3 other times (without the line commands) without a problem.
Any suggestions?
  3 commentaires
Eric
Eric le 14 Jan 2012
16000
Eric
Eric le 14 Jan 2012
But plot() gets executed on that sized data many (hundreds) of times, with no issues.

Connectez-vous pour commenter.

Réponse acceptée

Rob Graessle
Rob Graessle le 14 Jan 2012
Are you expecting each call to 'line' to draw 15999 lines or just one line? If it is the latter, try this instead:
line([1 length(detdata)],avg_env_sample(var),'Color','r');
line([1 length(detdata)],avg_env(var),'Color','g');
  2 commentaires
Walter Roberson
Walter Roberson le 14 Jan 2012
It appears to me that var is a scalar, as otherwise the subplot() would not work. Then in order to draw a horizontal line, the y coordinate would need to be duplicated:
line([1 length(detdata)],avg_env_sample([var var]),'Color','r');
line([1 length(detdata)],avg_env([var var]),'Color','g');
Eric
Eric le 14 Jan 2012
So my understanding is this will draw a horizontal line interpolated from two (x,y) points instead of a 16000 point line? I still don't understand why the execution of the original code is so slow if plot() executes so quickly on the same sized data. But it does bring everything back to normal. Thank you Walter and Rob.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by