Selecting a single value with max function - Subscripted assignment dimension mismatch.

4 views (last 30 days)
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;

Accepted Answer

Walter Roberson
Walter Roberson on 25 Jun 2012
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;

More Answers (1)

grapevine
grapevine on 25 Jun 2012
I'm not sure about that Check this code
A=[2, 2, 3, 3]
[num, indexMax] = max(A)
size(num)
length(num)
I think the error is elsewhere, but you didn't give us enough information to help you

Categories

Find more on Simulink 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!