WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

xlswrite verschiedene Dimension

 

Philipp68
Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 25.02.2017, 14:50     Titel: xlswrite verschiedene Dimension
  Antworten mit Zitat      
Hallo,

ich probiere in meine Exceldatei sheets mit Vektoren zu füllen. Da es sehr viele sind, dauert es entsprechend sehr lange, jedes Mal einen xlswrite - Befehl auszuführen.
Meine Vektoren haben alle eine unterschiedliche Länge.
Erste Idee war
Code:

% y1 hat die zB die Länge 20
% y2 hat die zB die Länge 25
%....
xlswrite(filename,[y1;y2;y3;y4,..],sheet1,'A6:H6');
 

Die Fehlermeldung war mir schon klar "Dimensions of matrices being concatenated are not consistent."

Gibt es eine andere Möglichkeit, diesen Prozess zu beschleunigen, vllt über cell? Denn ~ 4 Minuten sind schon sehr lange, vorallem, wenn man kleine Dinge ändert und sehen will, ob es klappt.

Bin für jeden Tipp dankbar!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.02.2017, 15:46     Titel:
  Antworten mit Zitat      
Hallo,

du kannst die y-Vektoren mit NaN auf die Länge des längsten Vektors auffüllen, oder eine Matrix mit NaN vorbelegen und die y-Werte in diese einfügen.

Auch ein Umstieg auf eine aktuellere MATLAB-Version würde helfen, da die Excel-Interaktion in einem der letzten Releases (ich meine R2015b) deutlich effizienter geworden ist. Ansonsten mal xlswrite1 googeln.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Philipp68
Themenstarter

Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 25.02.2017, 15:53     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke für deinen Vorschlag, werde ich versuchen.
Habe mir mal ein kleines Beispiel ausgedacht, kannst du beurteilen, ob dieser Ansatz zeitlich schneller sein wird? Pro Sheet es ist es eine Matrix x * 7.
x reicht maximal bis 30. Insgesamt habe 20 sheets.

Code:

v1 = rand(20,1);
v11 = rand(10,1);

v2 = mat2cell(v1);
v22 = mat2cell(v11);

v3 = [v2,v22];
C1 = {'A1','B1'};

for i = 1:2
xlswrite('test.xlsx',v3{1,i},'Tabelle1',C1{:,i});
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.02.2017, 16:22     Titel:
  Antworten mit Zitat      
Hallo,

ohne es nun ausprobiert zu haben, dürfte das vor allem nicht klappen:
- mat2cell benötigt zusätzliche Argumente
- die Dimensionen passen nicht

Gedacht war das z.B. so:
Code:
data = nan(30, 7);
data(1:numel(y1),1) = y1;
data(1:numel(y2),1) = y2;
...

Wenn du statt durchnumerierter Vektoren (wirklich nie eine gute Idee, siehe diverse Threads dazu und zu eval) ein Cell Array verwendest, kannst du das auch in einer for-Schleife machen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Philipp68
Themenstarter

Forum-Century

Forum-Century


Beiträge: 167
Anmeldedatum: 21.10.15
Wohnort: Mannheim / Ilmenau
Version: R2014a, R2017a, R2019b
     Beitrag Verfasst am: 25.02.2017, 16:59     Titel:
  Antworten mit Zitat      
Mein erster Vorschlag dauert deutlich länger, wollte es trotzdem mal versuchen Smile
Werde es nun mit einer NaN - Matrix machen und vorher die Vektoren mit cell umwandeln und mit einer Schleife in die NaN - Matrix einfügen. Werde nochmal Bescheid geben, ob es so geklappt hat Smile
Vielen Dank bis hierher!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.