How to retrieve index in a matrix

3 visualizzazioni (ultimi 30 giorni)
Danish Nasir
Danish Nasir il 28 Giu 2022
Commentato: Voss il 28 Giu 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 Commenti
Jonas
Jonas il 28 Giu 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]
Danish Nasir
Danish Nasir il 28 Giu 2022
I do not want repetition of index . C matrix should have unique elements. Since there is a tie between 2nd and 3rd column , so 3rd column index is 2. Now only 3 left as unique index, so 4th cloumn index is 3

Accedi per commentare.

Risposta accettata

Voss
Voss il 28 Giu 2022
Modificato: Voss il 28 Giu 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))
C = 1×4
0 0 0 0
A_temp = A
A_temp = 4×4
20 100 35 50 30 30 25 40 40 5 45 15 50 4 20 20
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 = 1×4
1 0 0 0
A_temp = 4×4
NaN NaN NaN NaN 30 30 25 40 40 5 45 15 50 4 20 20
C = 1×4
1 4 0 0
A_temp = 4×4
NaN NaN NaN NaN 30 30 25 40 40 5 45 15 NaN NaN NaN NaN
C = 1×4
1 4 2 0
A_temp = 4×4
NaN NaN NaN NaN NaN NaN NaN NaN 40 5 45 15 NaN NaN NaN NaN
C = 1×4
1 4 2 3
A_temp = 4×4
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
C
C = 1×4
1 4 2 3
  2 Commenti
Danish Nasir
Danish Nasir il 28 Giu 2022
Thanx a lot....its great....
Voss
Voss il 28 Giu 2022
You're welcome!

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by