Verfasst am: 09.06.2008, 14:58
Titel: Maximalwerte einer Matrix
Hallo,
ich habe denke ich ein sehr einfaches Problem.
Ich initialisiere eine Matrix(n x n) mit Zufallswerten,
und möchte unter Beibehaltung der Matrix-Form nur noch die Maxima in
jeder Zeile stehen haben. Der Rest soll mit 0 gefüllt werden.
Über die Forumsuche hab ich nichts passendes gefunden.
Kann ich das über Indizes machen ?
N=input('Wähle die Feldgröße von min 4(<4 beendet: ')
Die Beispiele von nschlange muessen noch etwas umgearbeitet werden, da sie im Moment die Spaltenmaxima beibehalten, das nur der Vollstaendigkeit halber.
Das muesste fuer die Zeilenmaxima funktionieren.
Es gibt sicherlich ne elegantere Moeglichkeit, als die Matrix zwei mal zu transponieren, aber mir fiel schlichtweg keine sinnvolle ein.
Vielen Dank. Ich bin nun ein ganzes Stück weiter gekommen.
Mein nächstes Problem, womit ich heute den ganzen Tag zgebracht habe :
Ich habe nun eine Matrix C (N x N), die eine zufällige Verteilung von Einsen enthält.
C =
0 1 1 1
0 0 0 0
0 0 0 0
1 0 0 0
Ich möchte nun, sobald auf einer Zeile/ Spalte/ Diagonalen sich mehr als eine 1 befindet, in einem anderen Vektor R die "Kollisionen" der Einsen zählen lassen.
Die Indizes der C-Matrix laufen spaltenweise und so soll auch in R sortiert werden : die erste 1 in Spalte1, Zeile 3 soll der erste Eintrag in R sein usw.
Befinden sich z.B. 3 Einsen in einer Reihe, hat die mittlere Eins natürlich zwei Kollisionen (einmal nach links, einmal nach rechts).
Probleme hab ich vorallem mit den (Neben-)Diagonalen ..
Zeilen und Spalten funktioneren soweit.
R würde in diesem Beispiel so aussehen :
R=(1 1 2 2)
Hier ein Auszug meiner Idee :
[...]
[m,n]=find(C>0); %Zeile und Spalte meiner Einsen
for i=1:N %bestimme Index meiner Einsen
o=find(C,i);
end;
"Bestimme welche 1 kollidiert (die erste, zweite, dritte ..) und trage die Anzahl der Kollision in einem Vektor R an der (ersten, zweiten, dritten ..) Stelle ein."
Falls ihr meinen kompletten Quelltext sehen wollt, dann Bescheid sagen.
Wollte nur nich gleich alles hier vollmüllen.
vielen Dank
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.