|
|
Auslesen des ersten numerischen Wertes aus einem 'cell' |
|
NaiveUser |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.02.2015, 17:36
Titel: Auslesen des ersten numerischen Wertes aus einem 'cell'
|
 |
Hallo Leute,
ich habe ein cell-Array und möchte jetzt aus allen Zellen den ersten numerischen Wert gleichzeitig extrahieren.
Bei einem cell, bei dem alle Matrizen in jeder Zelle die gleichen Dimensionen haben, habe ich es so gelöst:
In Var ist jetzt aus jeder Reihe des cell-Arrays der erste Eintrag der Matrix.
Jetzt möchte ich gerne auch dann den ersten Eintrag jeder Zelle wenn die Matrizen innerhalb der Felder unterschiedliche Dimensionen haben und zwar ohne 'for'-Schleife. Die cell-Arrays sind recht groß und die loops brauchen zu viel Zeit.
Also im Prinzip so etwas:
Das funktioniert aber nicht.
Kann mir bitte jemand helfen?
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 26.02.2015, 13:00
Titel: Re: Auslesen des ersten numerischen Wertes aus einem 'cell'
|
 |
|
 |
|
Hallo NaiveUser,
Wieso möchtest Du eine FOR-Schleife vermeiden? FOR-Schleifen sind prinzipiell langsam, wenn man sie besonders ineffizient programmiert, z.B. eine Pre-Allocation ausgelassen hat. Das ist dann aber nicht das Problem von FOR!
Und selbst wenn die FOR-Schleife etwas langsamer wäre, wären das nur winzige Sekunden-Bruchteile. Alleine die Frage ins Forum zu stellen benötigt schon 1000 mal mehr Zeit.
Du kannst per CELLFUN die einzelnen Arrays des Cells indizieren, aber das ist intern natürlich ebenfalls eine Schleife. Wenn man auch intern eine Schleife prinzipiell nicht vermeiden kann, kann man sie auch direkt in Matlab programmieren.
Wenn später beim fertigen laufenden Programm mit dem Profiler herausgefunden wird, dass die Schleife der Flaschenhals für die gesamte Laufzeit ist, könnte man über eine Vektorisierung nachdenken. Wenn dieser Code-Abschnitt aber nur 1% der Gesamt-Laufzeit verbraucht, ist eine "Optimierung" nur vertrödelte Zeit.
Siehe dazu im Netz nach dem Stichwort "premature optimization".
Mein Ratschlag also: Nimm die FOR-Schleife. Mit einer Pre-Allocation ist das wenigstens fast optimal.
Gruß, Jan
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|