Verfasst am: 24.01.2017, 11:01
Titel: Erstellung von Excel File dauert sehr lange
Hallo,
ich erstelle mit Matlab ein Excel File, in das Messwerte und figures eingefügt werden, das klappt soweit auch, nur dauert es 1-2 min. Ich habe schon mal diese Art von Erstellung verwendet, jedoch ging es damals viel schneller. Ich würde euch einfach mal den Code zeigen.
Code:
figure(1) hold on
bar([Max_a1,Max_a2;Max_b1,Max_b2;Max_c1,Max_c2;Max_d1,Max_d2;Max_e1,Max_e2;Max_f1,Max_f2;Max_g1,Max_g2],1);
set(gca,'XTickLabel',{'','Vollfeld','Makula','Papille','V. Papillenkreisring','H. Papillenkreisring','I. Kreisring','Ä. Kreisring'},'fontsize',6.5);
set(figure(1),'Units', 'centimeters', 'Position', [0.5, 0.5, 23, 8]);
plot(xlim,[100100],'r');
ylabel('Maximale Dilatation [%]','fontsize',8);
title('Maximale Dilatation aus Gesamtmittelwert von jeweils inferior/superior Arterie/Vene','fontsize',10);
hold off
box on
Insgesamt habe ich fünf figures, die ich in meine Excelvorlage einfüge.
Es ist sehr mühsam so lange zu warten, wenn ich immer wieder was neue schreibe, run betätige, um zu sehen, ob es funktioniert.
Hoffe mir kann jemand helfen und sagen, woran es liegt.
Ich habe schon mal diese Art von Erstellung verwendet, jedoch ging es damals viel schneller.
Kann es sein, dass der Ablauf damals ein etwas anderer war? Z.B. nicht viele xlswrite-Befehle nacheinander?
Bei aktuellen MATLAB-Versionen dürfte das ganze schneller sein, weil bei wiederholten xlswrite-Befehlen nicht jedes Mal der ganze Excel-Prozess geöffnet und geschlossen wird. Bei älteren Releases musst du selbst auf effiziente Programmierung achten, z.B.
Hallo Harald!
Ich hatte damals nicht so viele xlswrite - Befehle.
Zur Zeit sind es 5 x 14 xlswrite - Befehle, mit deinem Tipp habe ich diese nun auf 5 x 2 reduziert und es ist nun deutlich schneller ~ 30s
"Hast du denn zuvor 5 Figures mit je 2 Linien erstellt?". Was kann ich mir unter "zwei Linien" vorstellen?
Ich meinem Code wird nur einmal die "bar - Funktion" für meine fünf figures (kurz vor dem Teil mit Excel) ausgeführt. Der Ablauf ist folgendermaßen: Messwerte werden berechnet. Auf dem Desktop erscheinen figure 1 - 5, danach werden diese automatisch geschlossen und erneunt geöffnet, dann stoppt es bei figure(4) für 10 - 20 sec, figure(5) erscheint, figure 1-5 sind nun geöffnet, die Excelvorlage öffnet sich und die figures werden eingefügt. Das plötzliche stoppen macht mich stutzig.
Wie der eine bar-Befehl zu 5 Figures passt, kann ich mir nicht vorstellen. Für weitere Unterstützung dazu bitte Code, der dieses Verhalten reproduziert, posten.
Hallo,
habe mich falsch ausgedrückt, ich meinte, dass ich für jedes figure "bar()" benutzt habe, also fünf Blockdiagramme. Danke für den Link, werde es mir mal genauer anschauen, wenn ich die Zeit habe. Mit der bisherigen Reduzierung der Befehle bin ich schon mal zufrieden
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.