MATLAB Answers

Error in a for loop

Nikolaos Zafirakis 님이 질문을 제출함. 14 Jul 2019
최근 활동 SaiDileep Kola 님이 답변함. 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

  댓글 수: 4

표시 이전 댓글 수: 1
This is the code not placed in a loop. The issue is that I have some ready measurements, but they are not in the format I need them, thus I use this code to fix them but I need to run it multiple times to fix the numbers. That’s why I need the loop to work. Additionally, I need the diff to run each time in order to grab the new first value of interest.
o = B(1:50,2);
a1 = diff(o);
[c1,d1] = find(a1>2^15);
[e1,f1] = find(a1<-2^15);
if c1 > 0
o(c1+1:e1) = o(c1+1:e1)-2^16;
else c1 < 0
o(c1+1:e1) = o(c1+1:e1)+2^16;
if isempty(e1)
o(c1+1:end) = o(c1+1:end)-2^16;
dpb 14 Jul 2019
No idea what you're trying to explain, sorry.
Show us some data that illustrates what you're after with inputs and expected outputs and how you know those are the right answers given the input.
What is the end starting format and then the "the format I need" for the data? Bound to be a more effective way to code this if we just knew what the problem was/is...
Original data
The result after 2 iterations of the code i showed you (I want to run what I showed you in a loop).

로그인 to comment.

답변 수: 1

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

  댓글 수: 0

로그인 to comment.

Translated by