Effacer les filtres
Effacer les filtres

max value in each row with its index

30 vues (au cours des 30 derniers jours)
kurdistan mohsin
kurdistan mohsin le 7 Juin 2022
hi , i have the below matrix , and i want to find the maximun value with its location(index)at each row w, so after finding the maximum value of each row then i will find maximum of maximums of these values and save it in another matirx with the same location(index) and all other values are zeros
inputmatrix= 8.0000 0 7.3398 0 8.0000
1.6635 0.7103 3.2000 3.2000 3.2000
3.2953 3.2000 3.2000 3.2000 3.2000
16.0000 16.0000 16.0000 10.8963 7.6226
8.2107 8.0000 0 5.3333 5.3333
0 3.2000 1.1829 3.2000 3.2000
8.0000 4.9461 0 14.2047 8.0000
1.4528 16.0000 16.0000 16.0000 3.3661
8.0000 8.0000 4.0000 4.0000 4.0000
0 2.5510 3.0116 2.6667 2.6667

Réponses (2)

Davide Masiello
Davide Masiello le 7 Juin 2022
Modifié(e) : Davide Masiello le 7 Juin 2022
inputmatrix= [8.0000 0 7.3398 0 8.0000;...
1.6635 0.7103 3.2000 3.2000 3.2000;...
3.2953 3.2000 3.2000 3.2000 3.2000;...
16.0000 16.0000 16.0000 10.8963 7.6226;...
8.2107 8.0000 0 5.3333 5.3333;...
0 3.2000 1.1829 3.2000 3.2000;...
8.0000 4.9461 0 14.2047 8.0000;...
1.4528 16.0000 16.0000 16.0000 3.3661;...
8.0000 8.0000 4.0000 4.0000 4.0000;...
0 2.5510 3.0116 2.6667 2.6667];
To find the maximum of each row and their indexes
[row_max,col_idx] = max(inputmatrix,[],2)
row_max = 10×1
8.0000 3.2000 3.2953 16.0000 8.2107 3.2000 14.2047 16.0000 8.0000 3.0116
col_idx = 10×1
1 3 1 1 1 2 4 2 1 3
I am not sure what you wanna do in the next step though.
  4 commentaires
kurdistan mohsin
kurdistan mohsin le 7 Juin 2022
thank you! , how can i index each value with its row and coumn index ?
Jan
Jan le 7 Juin 2022
index = sub2ind(size(inputmatrix), col_idx.', 1:5);
inputmatrix(index) % same values as row_max

Connectez-vous pour commenter.


Steven Lord
Steven Lord le 7 Juin 2022
Do you actually need or want the locations of the maximum element in each row or is that just a temporary step towards your ultimate goal of identifying the largest value in the whole matrix? If the latter, consider an alternate approach. Let's take some sample data.
A = randi([-10 10], 5)
A = 5×5
-4 -6 10 -5 -2 -10 -2 6 1 0 -3 -7 3 1 9 -5 -7 4 -9 -1 -5 -4 -6 7 -2
Determine the maximum value in the array (stored as value) and its linear index (stored as location.) Using the 'linear' option requires release R2019a or later.
[value, location] = max(A, [], 'all', 'linear')
value = 10
location = 11
Create an all zero array the same size as A.
B = zeros(size(A));
Set the element in B corresponding to the location of the maximum value in A to that maximum value.
B(location) = value
B = 5×5
0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  1 commentaire
kurdistan mohsin
kurdistan mohsin le 8 Juin 2022
Modifié(e) : kurdistan mohsin le 8 Juin 2022
this is a great solution , but what if the location was indicated as it's row and cloumn indexing ,like in your example i want to give me the location as ; [1,3] , is it possible?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by