MATLAB: Selecting a single value with max function – Subscripted assignment dimension mismatch.

maxsubscripted assignment dimension mismatch

Hello, I am having the error message ??? Subscripted assignment dimension mismatch, an I believe that it is caused because when I use the max function, it finds two maximum values and tries to return both of them. Is there a way to return one value? The part of code that I get the error is shown below: Line No 5.
A = rpm((i-19):(i-10),1);
rpmGS(c,1) = max(A);
num = max(A);
row=find(A==num)+(j-2)*10+3;
%ratioGS(c,1) = ratio(row,1);% This is the error line.
velocityGS(c,1) = a(row-3,6);
c=c+1;

Best Answer

The max() is only returning one value. The find(A==num) is returning 2. If you only want one returned you can use find(A==num, 1). Or, as indicated by "grapevine" you can use the two-output version of max() to return the location instead of doing the find()
[num, indexMax] = max(A);
row = indexMax + (j-2)*10+3;