Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

# Anyone who can help a Matlab program that perform the following matrix problem

1 Ansicht (letzte 30 Tage)
Keyre am 2 Mär. 2018
Geschlossen: MATLAB Answer Bot am 20 Aug. 2021
I have n by m matrix.I want to find the maximum values for each columns starting from the first column to the last column. However, there is a restriction that only two maximum values are allowed in each rows.
##### 1 Kommentar-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden
David Fletcher am 2 Mär. 2018
I'm not really sure I fully understand your intended aim. An example may be useful to clarify the true nature of the problem.

### Antworten (1)

John BG am 2 Mär. 2018
Hi Keyre
1.
Let A be your matrix, for instance
m=5;n=8;A=randi([-10 10],n,m)
A
=
7 10 -2 4 -5
9 10 9 5 -10
-8 -7 6 5 -8
9 10 10 -2 7
3 10 3 3 4
-8 0 -10 -7 -4
-5 6 7 4 9
1 -8 9 -10 -10
2.
Combining command sort and flip the columns are arranged top to bottom, max of each column on each top.
B=flip(sort(A))
=
9 10 10 5 9
9 10 9 5 7
7 10 9 4 4
3 10 7 4 -4
1 6 6 3 -5
-5 0 3 -2 -8
-8 -7 -2 -7 -10
-8 -8 -10 -10 -10
3.
Now let's say you want the 3 max elements of each column.
Simply indexing the following way:
B([1:3],:)
=
9 10 10 5 9
9 10 9 5 7
7 10 9 4 4
You get the 3 largest elements of each column
Keyre
John BG
##### 3 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
John BG am 7 Mär. 2018
Hi Keyre
I chose 3, to show that one can choose any amount of top values (=< amount lines, indeed).
Do you mean this?
trim_top=2;
B([1:trim_top],:)
=
9 10 10 5 9
9 10 9 5 7
Jan am 8 Mär. 2018
@Keyre: If this solves your needs, a hint for a good programming practice: The square brackets waste time here:
B([1:trim_top], :)
This is slightly faster:
B(1:trim_top, :)
[] is the Matlab operator for concatenation, but 1:trim_top is a vector already and there is noting to concatenate. There are further benefits, see Answers: Why not use square brackets.

Diese Frage ist geschlossen.

### Community Treasure Hunt

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

Start Hunting!

Translated by