Error in a for loop

1 view (last 30 days)
Nikolaos Zafirakis
Nikolaos Zafirakis on 14 Jul 2019
Answered: SaiDileep Kola on 17 Jul 2019
I’m trying to run a loop through some measurement but I keep getting this error "Unable to perform assignment because the size of the left side is 3-by-1 and the size of the right side is 2-by-1." Does anyone know a way around this?
o = B(1:50,2);
for ind = 1:length(o)
a1(:,ind) = diff(o);
[c1(:,ind),d1(:,ind)] = find(a1(:,ind)>2^15);
[e1(:,ind),f1(:,ind)] = find(a1(:,ind)<-2^15);
o(c1(:,ind)+1:e1(:,ind)) = o(c1(:,ind)+1:e1(:,ind))-2^16; % Error Happens here
end
  4 Comments
Nikolaos Zafirakis
Nikolaos Zafirakis on 14 Jul 2019
Original data
plot(a).jpg
The result after 2 iterations of the code i showed you (I want to run what I showed you in a loop).
plotb.jpg

Sign in to comment.

Answers (1)

SaiDileep Kola
SaiDileep Kola on 17 Jul 2019
Hi,
I see that you get the error in 3rd line in the for loop not in the of 4rth line as you mentioned, I think your use case can be realized with the following code.
o = B(1:50,2);
for ind = 1:length(o)
a1 = diff(o);
c1 = find(a1>2^15);
e1 = find(a1<-2^15); %Error happens here
o(c1+1:e1) = o(c1+1:e1)-2^16; % Error doesn't occur here
End

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by