|
|
CellArrays unterschiedlicher Größe mit cell2mat konvertier |
|
Martinuk |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 18.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.02.2015, 13:58
Titel: CellArrays unterschiedlicher Größe mit cell2mat konvertier
|
 |
Hallo,
ich habe folgendes Cell Array
Der cell2mat Befehl funktioniert nicht aufgrund der unterschiedlichen Dimensionen (5, 10, 20).
Das Ergebnis sollte nun sein
Ich möchte einfach die einzelnen Zellen entsprechend der Anzahl der Zeilen aneinanderhängen und das entlang der Anzahl der Spalten.
Wie kann man das am elegantesten lösen? For-Schleifen möchte ich bei Möglichkeit vermeiden, danke.
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 12.02.2015, 17:52
Titel: Re: CellArrays unterschiedlicher Größe mit cell2mat konver
|
 |
|
 |
|
Hallo Martinuk,
Wieso möchtest Du FOR-Schleifen vermeiden? Das posten dieser Frage hat sicherlich 10 mal mehr Zeit gekostet als eine FOR-Schleife im schlimmsten Fall vertrödeln könnte. Allerdings müssen FOR-Schleifen nicht unbedingt langsamer sein.
Eine wichtige Programmier-Regel ist das vermeiden der "Premature Optimization". Schon beim Programmieren zu viel Arbeit in die Laufzeit-Optimierung zu stecken, führt im Allgemeinen zu unübersichtlichen Programmen, so dass die Debug-Zeit die Gesamt-Laufzeit bei weitem übertrifft. Deshalb programmiert man zuerst saubere Schleifen und lässt dann den Profiler über das gesamte Programm laufen. Dann optimiert man nur noch die Flaschenhälse, denn es lohnt sich niemals an Code herum zu pfriemeln, der nur 2% der Rechenzeit ausmacht.
Vektorisierter Code ist dann effizienter, wenn die Schleife einen nennenswerten Anteil der Berechnungen ausmacht. Hier werden allerdings größere Arrays erzeugt und die Laufzeit ist wohl eher durch die Zugriffsgeschwindigkeit auf das RAM begrenzt. Wenn out pre-alloziert ist, ist die Schleife deshalb eher nebensächlich.
Deshalb:
Gruß, Jan
|
|
|
Martinuk |
Themenstarter

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 18.04.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.02.2015, 10:15
Titel:
|
 |
Hallo Jan,
danke für die Antwort. Macht Sinn was du da schreibst. Grundsätzlich habe ich nichts gegen for-Schleifen, aber wenn sich Dinge in einem Befehl lösen lassen oder Build-in Funktionen von Matlab dann ziehe ich diesen Ansatz gerne mal vor.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 16.02.2015, 11:48
Titel:
|
 |
Hallo Martinuk,
Ja, das stimme ich Dir zu: Ein einzelner Aufruf einer Toolbox-Funktion ist wahrscheinlicher fehlerfrei, also wieder ein Vorteil bei der Debug-Zeit.
CELL2MAT ist wieder eine M-Funktion, man hat also auch dort wieder mit Schleifen zu tun.
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.
|
|