MATLAB: Matrices question (2)

matrix for loop iteration variable maximum values

Hi there,
I have a code which looks like this:
vN=linspace(Phimin, Phimax, N);
for iN=1:length(vN)
G(iN)=Phi + BOC;
C2(iN)=Rcon ./ ((Ccon .* cos(G(iN))) + (Scon .* sin(G(iN))));
C1(iN)=Rmax^2 + (C2(iN) .* cos(G(iN) + Thetamax));
A(iN)= (sqrt(abs(C1(iN)+C2(iN))) + sqrt(abs(C1(iN)-C2(iN))))./2;
B(iN)=C2(iN) ./ (2.*A(iN));
vP=linspace(Thetamin, Thetamax, P);
for iP= 1:length(vP)
R(iP)= sqrt(C1(iN) - (C2(iN) .* cos(G(iN) + Theta)));
F(iN,iP)= abs(((R(iP).*(M*g*L)) .*cos(Theta)) /((A(iN).*B(iN)) .* sin(G(iN)+Theta)));
It allows me to determine variable F depending on value for variables phi and Theta, which are both matrices containing N and P terms respectively.
I would now like to determine what the maximum values of F are for a certain value of Phi-for example, if Phi=…, Theta=matrix of P terms, F=matrix of P terms, of which the maximum value is …
I'd also like to store these values in a separate matrix, such as Fmax. With my code above, does anybodu have any advice as to go about doing this?

Best Answer

  • Phi = vN;
    Theta = vP;
    [vmx1,idx1] = max(F);
    Fmaxphi = [vmx1;Phi(idx1);Theta];
    [vmx2,idx2] = max(F,[],2);
    Fmaxtheta = [vmx2,Phi,Theta(idx2)]';