difference between a= and a(:)=
조회 수: 3(최근 30일)
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
V = V(:);
what is the sense of this??
Chunru 2021년 6월 7일
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.
KSSV 2021년 6월 7일
편집: KSSV 2021년 6월 7일
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) ;
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.
Walter Roberson 2021년 6월 7일
Assigning to a(:) or a(1:N) keeps the same "shape" and datatype.
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.