MATLAB: Finding index of a value in the matrix

arraysindexingMATLAB

I have a matrix "A" of size "n*2"
1st column–phase
2nd column–magnitude
I have to find the row index of a row which have particular phase (targetPhase) and maximum magnitude
I have used this code:
range=find( abs(A(:,1) – targetPhase) < 2 ); % targetPhase is the required phase
Index = set( find( max( abs(A(range,2) ) ) );
I know there is a mistake in second line
Could you please help to solve this problem with a short code

Best Answer

This is probably the shortest you can get
range=find( abs(A(:,1) - targetPhase) < 2 ); % targetPhase is the required phase
[~,IndexMax] = max( abs(A(range,2) ) );
Index = range(IndexMax);