Dies ist in erster Linie eine persönliche Präferenz es sei denn Sie Code schreiben müssen, die in pre-HG2 Versionen von MATLAB arbeiten (vor R2014b), in dem Fall, dass Sie müssten set
und get
verwenden, die Abwärtskompatibilität zu erhalten.
Hier sind ein paar andere Vorteile zu set
mit und get
Methoden:
Manipulation von mehreren Objekten gleichzeitig
Sie können ein Array von Objekten oder Griffe und eine Eigenschaft auf alle gleichzeitig ändern
ax(1) = subplot(1,2,1);
ax(2) = subplot(1,2,2);
% Change the font weight of both axes object to be the same
set(ax, 'FontWeight', 'bold')
% Change the font weight to be different for each
set(ax, {'FontWeight'}, {'bold'; 'normal'})
Sie etwas ähnliches mit Punktnotation tun kann, aber ich denke, es ist ein bisschen weniger lesbar ist
[ax.FontWeight] = deal('bold');
Ändern mehrerer Eigenschaften gleichzeitig
Sie können in einer Aussage, die Werte mehrerer Eigenschaften ändern, die ich denke, mit Lesbarkeit helfen und Ihren Code präzise zu halten.
set(ax, 'FontSize', 20, 'FontWeight', 'bold', 'FontName', 'arial')
Wie in den Kommentaren von @Hoki ausgeführt, ist dies besonders wichtig, wenn Sie Eigenschaften aktualisieren, die voneinander abhängig sind. Zum Beispiel das Modifizieren der XData
und YData
eines Plots, wo beide die gleiche Größe haben müssen.
So folgt aus:
hplot = plot(1, 1);
set(hplot, 'XData', rand(10, 1), 'YData', rand(10, 1))
Statt dessen:
hplot = plot(1, 1);
set(hplot, 'XData', rand(10, 1))
% Plot won't render here
set(hplot, 'YData', rand(10, 1))
% Plot will be able to render
Programmatically Get Mögliche Werte
Mit Punktnotation können Sie Tabulatorvervollständigung verwenden, um eine Liste der möglichen zu erhalten Werte; Sie können dies jedoch programmgesteuert mit set
tun, indem Sie einfach keinen Wert angeben.
possible = set(axes, 'FontWeight')
% 'normal'
% 'bold'
Verkürzte und Groß- und Kleinschreibung Eigenschaften
Ich empfehle nicht, diese nächsten zwei verwenden, aber sie sind möglich mit set
und get
.
Mit den set
und get
Methoden, die Sie müssen nicht bieten einen gesamten Eigenschaften Namen, gerade genug, um Buchstaben, die es einzigartig ist.
set(ax, 'FontW', 'bold')
Auch wenn set
und get
verwendet wird, ist der Name der Eigenschaft
set(ax, 'fontweight', 'bold')
Aus Gründen der Lesbarkeit unempfindliche Fall, dass ich den Punkt Notation für einzelne Eigenschaft bevorzugen und 'Set' /' get' für mehrere Eigenschaften. Auf der anderen Seite, wenn ich Rückwärtskompatibilität in Betracht ziehen muss, ist 'set' /' get' der richtige Weg, da die Punktnotation zuerst langsam in '2014b' hinzugefügt wurde. – Skogsv
Es könnte sehr kleine Leistungsunterschiede geben, aber im Allgemeinen würde ich @Skogsv Ratschläge folgen: Treffen Sie Ihre Wahl zwischen Lesbarkeit und Rückwärtskompatibilität. – Hoki