MATLAB Find Max P04 in MATLAB for i, j, and k values using 8x89x89 matrix

AI Thread Summary
The discussion revolves around a MATLAB function designed to calculate the P04 values for varying indices i, j, and k, resulting in an 8x89x89 matrix. The user aims to find the maximum P04 value for each i, along with the corresponding j and k indices. The initial approach involves nested for loops to populate the P04 matrix and then attempts to use the max function to extract the maximum value and its indices. However, the results returned zero for the maximum value and did not yield the expected indices. The user is advised that the max function should be applied to the entire P04 matrix for each i, rather than a single element, suggesting the correct implementation is [c(i),I] = max(P04(i,:,:)). This adjustment is crucial for obtaining the desired maximum values and indices.
ADunn
Messages
6
Reaction score
0
In MATLAB I have a function which calculates P04 for different values of i,j, and k providing a 8x89x89 matrix of values. I am trying to find the max P04 for each value of i and the corresponding j and k values.

Here are my for loops:

for i = 1:1:8;
M1(i) = 2+0.1*i;
for j = 1:1:89;
betaA(j) = j*pi/180;

for k = 1:1:89;
betaB(k) = k*pi/180;

[P04(i,j,k)] = Mach3(M1(i),betaA(j), betaB(k),P01);

end
end

[c(i),I] = max(P04(i,j,k));

end
I tried:

[c(i),I] = max(P04(i,j,k)); (as above)

and

[val(i),ind]= max(P04(i,j,k));

both gave me a max value of zero and did not give me the indices.

Thanks for any help!
 
Last edited:
Physics news on Phys.org
ADunn said:
[c(i),I] = max(P04(i,j,k));
P04(i,j,k) is a single element of an array. The entire array must be passed to the max function
[c(i),I] = max(P04);
 
Back
Top