Obwohl es keinen signifikanten Unterschied gibt, gibt es einen Unterschied.
v1=5;
erstellt eine Variable namens v1
, die den Wert 5 hat.
v1=[5];
definiert eine Matrix / einen Skalar mit dem Wert 5; dann verkettet es diese Matrix mit nichts - Verkettung ist die Operation, die von den eckigen Klammern ausgeführt wird, und deshalb brauchen Sie sie, um [1,2,3]
zu definieren - und dann wird das Ergebnis der Variablen v1
zugewiesen. Also die Verwendung der eckigen Klammern führt eine zusätzliche Operation durch.
Aus diesem Grund erhalten Sie, wenn Sie Ihren Code in den Editor schreiben, eine m-lint Nachricht mit dem Hinweis
Die Verwendung von Klammern [] ist nicht notwendig. Verwenden Sie bei Bedarf Klammern, um sie zu gruppieren.
Es besteht kein Unterschied zwischen [5]
und 5
. Aber im Allgemeinen kann es einen Unterschied zwischen einem Ausdruck [f]
und f
geben, wobei f
ein Ausdruck ist. Hier ist ein Beispiel:
c = {10,20,30,40,50,60};
x = c{1:3}
y = [c{1:3}]
Hier ist c
ein Zellen-Array, also gibt die Operation c{1:3}
alle Objekte an den Stellen 1 bis 3 von c
als eine durch Komma getrennte Liste zurück, dh sie gibt zurück %Code%. It gibt das Array 10,20,30
nicht zurück. Der Befehl [10,20,30]
entspricht also x = c{1:3}
, was der Zuweisung von x=10,20,30
dem Wert x
entspricht und dann nichts mit den Literalen 10
und 20
tut. Auf der anderen Seite gruppiert der Befehl 30
die durch Kommas getrennte Liste in Klammern y = [c{1:3}]
, also entspricht sie []
. Abschließend wird y=[10,20,30]
den Wert x
haben, während 10
den Wert y
haben wird.
Tags und Links matlab