Hintergrund:
Das Cell-Array wird durch das Einlesen eines XML-Files erstellt, daher eine feste Struktur als Cell-Array mit mehren Structs.
Die Table-Daten kommen aus einer Benutzereingabe, die ich ins Cell-Array übernehmen/ersetzen will.
Mir geht es primär um diesen Zugriff:
Code:
for i=1:length(MyCell)
MyCell{i}.Number = tData.NewNumbers(i);
end
Wenn ein Cell-Array erstellt wird, ist es ein Umweg es in ein
table
Objekt umzuwandeln. Wenn Die Daten bereits als
table
vorliegen, erkläre das bitte eindeutig.
Macht die vonm mir bvereits gepostete Schleife, was du brauchst? Wenn nicht, was fehlt?
Ein Einzeiler wäre zwar schöner, aber ich sehe gerade keinen solchen Weg. Falls es eine Microsekunde schneller wäre, müsste es immer noch viele Millionen mal laufen, bevor Du die Zeit wieder reingeholt hast, die das Fragen im Forum kostet. Aber es ist natürlich immer eine gute Idee, sich nach effizientem Code umzuschauen, weil man dann ja auch etwas für andere Programmier-Probleme lernt.
die Variante die ich am Anfang gepostet habe funktioniert ja (und unterscheidet sich im Grunde auch nicht von deiner Variante).
Ich wollte nur wissen, ob eine andere Art der Zugriffsmöglich prinzipiell möglich ist.
Wenn ich die dann kenne kann ich immer noch entscheiden, ob die besser oder schlechter ist, aber erst einmal muss ich die kennen.
Das da oben war ja nur ein Beispielcode, um mein Problem zu beschreiben und so dass jemand anderes mit C+P den Code für sich schnell selber ausprobieren kann.
Warum jetzt das Eine als Cell-Array und das Andere als Table vorliegt ist doch erst einmal irrelevant.
Zeit die beim Posten im Forum "vergeudet" wird, gegen Zeitersparnisse in der Performance von Code aufzuwiegen halte ich für Unsinn. Es geht mir ja darum zu lernen, um auch bei ähnlichen Problemstellung eventuell eine elegantere Lösung zu haben.
Wenn man nur den geposteten Code im Forum sieht, kann man nicht wissen, was dazu nur dem Erzeugen von Test-Daten dient, und was zum Lösungsversuch zählt.
Über die Nachteile eines vorzeitigen Optimierens findet man im Netz viel, Stichwort "premature optimization", z.B. https://en.wikipedia.org/wiki/Program_optimization. Im Berufsleben ist die Zeit relevant, die man zur Lösung eines Problems einsetzt, und dazu zählt natürlich auch die Zeit, die man für die Optimierung des Codes benötigt.
Ich denke, meine Antwort ist bereits klar geworden: Die Strukturierung der Daten mit einem
table
Objekt und einem Struct-Cell-Array hat zur Konsequenz, dass es keine "elegante" Methode für ein Kopieren gibt. Hier muss man sich entscheiden, ob die Eleganz der Daten-Repräsentation oder der -Konvertierung wichtiger ist.
Die Schleife macht jedenfalls effizient, was sie soll.
Viele Grüße, 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
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.