Kann man eine Referenz auf die Instanz einer Datenstruktur erstellen?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hallo,
ich habe gesehen, dass man Klassen mit
classdef myClass
properties
...
end
methods
...
end
end
definieren kann. Andererseits habe ich in Verbindung mit dem Datentyp
struct()
keine stabile Möglichkeit gefunden um mit Pointern zu arbeiten. Wie geht man vor wenn man größere Datenmengen verwalten/verarbeiten möchte und Kopieren nicht in Frage kommt. Wenn man mit der Datenstruktur struct() arbeitet und diese verschachtelt wird der Zugriff über Indizierung ziemlich unübersichtlich. Andererseits gibt es die Möglichkeit scheinbar echte Klassen zu erzeugen.
Gibt es eine Art Referenz auf Objekte oder Strukturen?
Vielen Dank!
Lisa
0 Kommentare
Antworten (1)
Harald
am 12 Mai 2024
Hallo Lisa,
eine Übersicht, wie MATLAB unnötige Kopien von Daten vermeidet und was du als Anwenderin dazu beitragen kannst, findest du hier:
Objekte haben standardmäßig ein Pass-By-Value Verhalten. Wenn du Pass-By-Reference haben möchtest, kannst du von der Handle-Klasse vererben.
Bezüglich Strukturen wäre es gut, wenn du "keine stabile Möglichkeit gefunden um mit Pointern zu arbeiten" näher ausführen könntest: was hast du versucht, und welche Probleme sind dabei aufgetreten?
Viele Grüße,
Harald
2 Kommentare
Harald
am 16 Mai 2024
Hallo,
prinzipiell ist beides möglich.
Ein Vorteil bei Klassen ist, dass du bei den Properties Datentyp und weitere Attribute festlegen kannst und so sichergestellt wird, dass die Properties mit sinnvollen Werten belegt werden.
Zudem wird bei Klassen die Funktionalität klar dem Datentyp zugeordnet.
Eine erste Einführung zu Klassen in MATLAB bietet das kostenfreie Onramp. Für ein tieferes Verständnis der objektorientierten Programmierung in MATLAB würde ich diese Schulung empfehlen.
Viele Grüße,
Harald
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!