Why getting this error ? how to fix it ?

Hi all,
I am trying to achive coeffcient correlation but getting erorr "Unable to perform assignment because the indices on the left side are not compatible with the
size of the right side".
Following function being used:
for i=1: length(a_sw)-300
x(i)= corrcoef(a_sw (i:i+300), b_sw(i:i+300));
Time_x=i;
end
figure(1)
plot(a_sw,b_sw,'ko',a_sw,b_lin,'r');
xlabel('A')
ylabel('B')
Any help would be appreciated.
Thanks

5 Comments

The problem are in those variables. What is the output of this line?
whos a_sw b_sw
corrcoef returns a matrix. You are trying to assign it to x(i) which is a scalar.
Yes, unless a_sw and b_sw were scalars
@Bob: If you really appreciate the help of the forum, do not delete your question after solutions have been posted.

Sign in to comment.

 Accepted Answer

Alex Mcaulley
Alex Mcaulley on 15 Mar 2019
Edited: Alex Mcaulley on 15 Mar 2019
As Adam said, probably your a_sw and b_sw are arrays and then the output of this
corrcoef(a_sw (i:i+300), b_sw(i:i+300));
is a matrix.
Then, to store those matrix you can use, for example, a cell array:
for i=1: length(a_sw)-300
x{i}= corrcoef(a_sw (i:i+300), b_sw(i:i+300));
Time_x=i;
end
figure(1)
plot(a_sw,b_sw,'ko',a_sw,b_lin,'r');
xlabel('A')
ylabel('B')

More Answers (0)

Asked:

Bob
on 15 Mar 2019

Commented:

Jan
on 19 Mar 2019

Community Treasure Hunt

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

Start Hunting!