How to retrieve index in a matrix
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Danish Nasir
el 28 de Jun. de 2022
Comentada: Voss
el 28 de Jun. de 2022
Suppose a matrix A= [20 100 35 50
30 30 25 40
40 5 45 15
50 4 20 20]
After [B,I]=sort (A,’ascend’), I get the index matrix
I= [ 1 4 4 1
2 3 2 3
3 2 1 4
4 1 3 2 ]
Now I want to make a matrix C which have only one index (corrsponds to minima) of each column I which is non repeating
C=[ 1 4 2 3] . The selection of these index will give column wise minima with no repeatation. How to make matrix C?
2 comentarios
Jonas
el 28 de Jun. de 2022
i do not fully understand, if you want the index of ea column of minimum element, you can use [~,idx]=min(A), but it gives [1 4 4 3]
Respuesta aceptada
Voss
el 28 de Jun. de 2022
Editada: Voss
el 28 de Jun. de 2022
One way is to find the index of the minimum in each column of A one at a time, setting that row of A to NaN each time so that that index will not be found again for subsequent columns.
A= [20 100 35 50
30 30 25 40
40 5 45 15
50 4 20 20];
C = zeros(1,size(A,2))
A_temp = A
for ii = 1:size(A_temp,2)
% output displayed in command window
% so you can see the process
[~,C(ii)] = min(A_temp(:,ii))
A_temp(C(ii),:) = NaN
end
C
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!