Change values of a vector (SM to C2)

조회 수: 7 (최근 30일)
Julen Vicente Pipaon
Julen Vicente Pipaon 2021년 3월 14일
편집: Harshavardhan 2025년 5월 29일
I don't know why my code doesn't work. My code suppose to de this:
It copys the bits of the vector from left to rigth until find the first 1. Then for the next bits I changes the 1s to 0s anf the 0s to 1s.
It is basically change from SM to C2.
Error: In an assignment A(:) = B, the number of elements in A and B must be the same.
V1(n) = 1-V1
In my code the vector that i want to make is [1 0 1 0]
CODE
V=[1 1 1 0]
V1 = fliplr(V) % 0 1 1 1
n=1;
x = 0;
while n<=length(V1)
if (V1(n) == 0 && x ~= 1) % If there is a 0 it keeps the (0)
V1(n) = 0
elseif (V1(n) == 1 && x ~= 1) % I keeps the fist (1)
V1(n)= 1
x = 1;
elseif x == 1 % When there has been a 1 i change the 0s to 1s and the 1s to 0s
V1(n) = 1-V1
end
n = n+1;
end
V1 = fliplr(V1)
V1 = [V(1) V1(2:4)] % [1 0 1 0]

답변 (1개)

Harshavardhan
Harshavardhan 2025년 5월 29일
편집: Harshavardhan 2025년 5월 29일
The error you are facing is due to the line:
V1(n) = 1-V1
Here, V1 is a vector , so 1-V1 is a vector , but V1(n) is scalar. Assigning a vector to a scalar is not allowed.
The corrected line should be:
V1(n) = 1 - V1(n)
Hope this helps.

카테고리

Help CenterFile Exchange에서 App Building에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by