max function in a for loop

3 views (last 30 days)
Orion
Orion on 23 Feb 2015
Commented: Orion on 23 Feb 2015
Are we not allowed to use max function in a for loop? I have a 25x50 cell array A, and each element of A is a vector of various lengths.
for j=1:25
temp=cell2mat(A{j,20});
[max,ind]=max(temp);
m(j)=max;
end
the length of the vector "temp" is different at each loop. at the second loop I get this error even though I can see a value in the Max column of workspace for temp.:
Subscript indices must either be real positive integers or logicals.
and it messes up the whole software because then I try:
>> xx=1:10;
>> max(xx)
Index exceeds matrix dimensions.
Does anyone know what is wrong? Thanks

Accepted Answer

Image Analyst
Image Analyst on 23 Feb 2015
You've used max as the name of your variable. DON'T DO THAT!!!!!!!! You've just blown away the max() function and now it thinks max is your array instead of the function.
for j=1:25
temp = A{j,20}; % cell2mat is not necessary unless A has another cell inside it.
[maxValue(j), indexOfMax] = max(temp(:));
end

More Answers (0)

Categories

Find more on Characters and Strings 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!