Wie definiere ich eine Struktur in Matlab
Ich weiß, dass eine Struktur, die definiert werden kann durch mehrere Möglichkeiten wie:
- Hinzufügen von Feldern zu einer Variablen
p.color.red = .2; p.color.green = .4; p.color.blue = .7;
- Definieren Sie eine Skalare Struktur durch Zuordnung
S = struct('a', 0, 'b', 1, 'c', 2);
Was ich im Stande sein will zu tun ist, erstellen Sie eine Struktur-definition (wie C). Mein end-Ziel ist ein array von Strukturen, die ich Durchlaufen können, und testen Sie es auf. Gibt es eine Möglichkeit, kann ich das definieren einer generischen Struktur, und erstellen Sie dann Instanzen? Sollte ich einen anderen Mechanismus. Ich weiß, MATLAB unterstützt Java, sollte ich eine Klasse/interface?
InformationsquelleAutor Joel B | 2010-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anders als in C, Matlab ermöglicht das hinzufügen oder entfernen von Mitgliedern aus einer Struktur, wie Sie gehen. Es ist mehr eine Konvention, die eine Struktur mit bestimmten Feldern kann verwendet werden, mit bestimmten Funktionen.
Also ja, das sind die beiden grundlegenden Möglichkeiten, Strukturen zu schaffen. Natürlich können Sie immer schreiben Sie eine Funktion in eine *.m Datei, die erstellt eine Struktur mit bestimmten Bereichen für Sie. Oder, wenn Sie möchten, um mehr OO, siehe hier
InformationsquelleAutor aschepler
Erwähnten Sie, Ihr Ziel war die Arbeit mit mehreren Struktur des gleichen Typs, daher sollten Sie sich bewusst sein, der hauptsächlich zwei Ansätze zur Verfügung, um Sie und wie Sie zu vergleichen:
1) array von Strukturen
Können Sie initialisiert wächst das array dynamisch
Aber es ist immer besser zu beginnen, indem Sie vorab die Zuweisung der array -
anderen trick, um pre-allocate:
Geben oder sogar alle Werte bei der Initialisierung:
Einfache Weise zu füllen, die Werte
Hier, wie Sie das abrufen aller Werte eines Feldes:
2) Strukturen arrays
Dies hat den Vorteil, dass die Struktur ist einfach ein array von pointer (r,g,b,str separat gespeichert im Speicher). Vergleichen Sie dies mit der vorherigen Vorgehensweise, wo wir eine array-Struktur, und jede Struktur, die Zeiger auf seinem Gebiet (es ist schon ein Speicher-overhead):
Auf der anderen Seite, da jedes der Felder einer Struktur gespeichert, die als array von seinem eigenen, es ist bis zu Ihnen, zu erzwingen, dass Sie übereinstimmen in der Länge.
Einige andere Beiträge, wenn Sie möchten, um mehr darüber zu Lesen:
InformationsquelleAutor Amro