difference between a= and a(:)=
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I find matlab code with assignments
a(:)=... and a(1:N)=...
where in the latter case the right hand side has length N also.
Why they dont write just a=...
Is there a difference?
Also I found the code snipped
if isvector(V)
V = V(:);
what is the sense of this??
0 Commenti
Risposta accettata
Chunru
il 7 Giu 2021
a(:) = 1 will not change the size of a, but assigne 1 to every element of a (assume a has been declared before, such as a = zeros(20,1));
On the other hand, a = 1 (for example) will redefine a (both in size, type and value) so that a becomes 1. Even if a is defined earlier as a = zeros(20, 1), a will be redefined with new rhs.
0 Commenti
Più risposte (2)
KSSV
il 7 Giu 2021
Modificato: KSSV
il 7 Giu 2021
a(1:N) will be either row or column vector depedning on a is row or column vector respectively.
a(:) always gives you a column vector.
a = rand(1,10) ;
a(1:10)
a(:)
If A is a matrix, A(:) will give a column vector will all columns appended one after another.
You can try yourself instead asking such simple questions.
0 Commenti
Walter Roberson
il 7 Giu 2021
Assigning to a(:) or a(1:N) keeps the same "shape" and datatype.
Example:
A1 = zeros(5,1,'uint8');
A2 = zeros(5,1,'uint8');
A1(:) = 1:5;
A2 = 1:5;
After, A1 stays a uint8 column vector, but A2 becomes a double precision row vector.
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!