|
|
Vergleichen von zwei Matrizen |
|
Perilun |

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.07.2018, 02:17
Titel: Vergleichen von zwei Matrizen
|
 |
Hallo,
ich habe eine Frage, wie kann man zwei Vektoren vergleichen und die Zahl welche in beiden Matrizen am höchsten steht bestimmen? Anschließend diese Zeile leeren.
Ein Beispiel:
A=[6; 2; 9; 8; 3; 7; 1]
B=[1; 7; 9; 4; 3; 8; 6]
C(1,1)=9;
Anschließend:
A=[6; 2; 8; 3; 7; 1]
B=[1; 7; 4; 3; 8; 6]
Das alles so lange bis A und B leer sind!
|
|
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 22.07.2018, 07:21
Titel:
|
 |
Hallo Perliun,
als erstes würde ich beide Vektoren zu einem zusammenfügen und dann das Maximum raussuchen. Zum Beispiel so:
Grüße
Jonas
PS: Falls du einfach 2 leere Vektoren haben möchtest geht das sogar einfacher:
Kleiner Spaß
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Perilun |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.07.2018, 10:35
Titel:
|
 |
Das Ziel ist folgendes Beispiel zu lösen:
Es gibt zwei Matrizen:
A=[0.1 3;0.3 1;0.6 2]
B=[0.7 2; 0.8 3; 0.9 1]
Diese Matrizen sollen jeweils nach der ersten Spalte sortiert werden. Die zweite Spalte soll nicht verändert werden. Bei der Matrix A sodass es der größte Wert oben steht, bei der Matrix B soll der kleinste Wert oben stehen. Anschließend sollen die beiden zweiten Spalten verglichen werden. Es soll herausgefunden werden, welche Nummer am höchsten in der Reihenfolge steht.
Die gefundene Nummer und die entsprechenden Werte aus den ersten Spalten sollen in eine Zeile einer Matrix C übertragen werden und aus A und B gelöscht werden. Dieser Vorgang soll wiederholt werden bis A und B leer sind.
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 22.07.2018, 11:03
Titel:
|
 |
Hallo Perilun,
die Matrizen sortieren kannst du mit Hilfe von
sort
:
Was du mit folgendem Satz meinst ist mir noch nicht ganz klar.
Zitat: |
Anschließend sollen die beiden zweiten Spalten verglichen werden. Es soll herausgefunden werden, welche Nummer am höchsten in der Reihenfolge steht. |
Was heißt "am höchsten in der Reihenfolge steht"? Ob die oberste Zahl in Spalte 2 der Matrix A größer/keiner als jene der Matrix B ist? Oder welche Zahl jeweils in der ersten Zeile & 2. Spalte der Matrizen steht?
Wie soll denn C bei deinem genannten Beispiel oben am Schluss aussehen?
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Perilun |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.07.2018, 22:19
Titel:
|
 |
Zitat: |
Anschließend sollen die beiden zweiten Spalten verglichen werden. Es soll herausgefunden werden, welche Nummer am höchsten in der Reihenfolge steht. |
Mit diesem Satz meinte ich, dass es herausgefunden werden soll welche Zahl ist in den beiden Spalten (sowohl in A, wie in B) am höchsen.
Beispiel:
a=[1; 2; 3; 4; 5; 6; 7]
b=[7; 2; 4; 1; 3; 6; 5]
Die Zahl, die am höchsten Steht wäre die 2, weil die 1 in b an vierter Stelle steht und die 7 in a an siebter!
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 08:10
Titel:
|
 |
|
 |
|
Ok,
du willst also die Summe der Positionen der Zahlen in den beiden Vektoren vergleichen und die Zahl, die der niedrigste Summe entspricht, auslesen und aus den beiden Vektoren löschen?
Oder willst du dir für jede Zahl (i) die Positionen pos_a_i und pos_b_i auslesen und dann schauen bei welcher Zahl das Maximum von pos_a_i und pos_b_i am kleinsten ist? (und diese dann auslesen und aus den Vektoren löschen)
Im ersten Fall:
Was passiert wenn 2 Zahlen die gleiche Summe haben?
In deinem Beispiel:
Als erste Zahl wird die zwei rausgenommen, dann die eins. Anschließend hat man folgende Vektoren:
Heißt die Summen der Positionen sind folgende:
Zahl 3 -> Summe = 4
Zahl 4 -> Summe = 4
Zahl 5 -> Summe = 8
Zahl 6 -> Summe = 8
Zahl 7 -> Summe = 6
Was soll jetzt passieren? Wird die drei oder die vier rausgenommen?
Gleiches im 2. Fall:
Bei deinem Beispiel wird erst die zwei rausgenommen, anschließend enthält man folgende Vektoren:
Man erhält die folgenden maximalen Positionen der Zahlen:
Zahl 1 -> Pos: 3
Zahl 3 -> Pos: 4
Zahl 4 -> Pos: 3
Zahl 5 -> Pos: 6
Zahl 6 -> Pos: 5
Zahl 7 -> Pos: 6
Wird jetzt die eins oder die vier rausgenommen?
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Perilun |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 10:08
Titel:
|
 |
Ich verstehe nicht wieso zwei Fälle??
Wenn zwei Zahlen die Gleiche Summe haben, dann soll der Wert, welcher in Matrix A besser positioniert ist vorgezogen werden!
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 10:19
Titel:
|
 |
Weil ich nicht weiß was von beiden du jetzt genau machen willst? Das Vorgehen der ersten Frage, oder das der zweiten Frage??
Zitat: |
du willst also die Summe der Positionen der Zahlen in den beiden Vektoren vergleichen und die Zahl, die der niedrigste Summe entspricht, auslesen und aus den beiden Vektoren löschen?
Oder willst du dir für jede Zahl (i) die Positionen pos_a_i und pos_b_i auslesen und dann schauen bei welcher Zahl das Maximum von pos_a_i und pos_b_i am kleinsten ist? (und diese dann auslesen und aus den Vektoren löschen) |
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Perilun |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 10:57
Titel:
|
 |
Für mich klingt beides ähnlich. Ich tendiere aber zum ersten Lösungsvorshlag!
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 11:02
Titel:
|
 |
Hallo,
die beiden Varianten liefern aber unterschiedliche Ergebnisse.
Es geht bestimmt auch schöner, aber hier eine Möglichkeit wie man Variante 1 lösen könnte:
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Perilun |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 12:58
Titel:
|
 |
Irgendwie funktioniert der Code bei mir nicht. Könntest du bitte auch die Ausgangswerte, die du benutzt angeben?
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 13:04
Titel:
|
 |
Hallo,
ich habe deine beiden Vektoren benutzt. Anbei nochmal der Code (auch für die 2. Variante)
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
Zuletzt bearbeitet von J0nas am 23.07.2018, 13:26, insgesamt einmal bearbeitet
|
|
|
Perilun |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 13:13
Titel:
|
 |
Leider kann ich den zweiten Code nicht anwenden, weil er sich bei mir aufhängt!
|
|
|
J0nas |

Forum-Century
|
 |
Beiträge: 208
|
 |
|
 |
Anmeldedatum: 10.09.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ab 2016a
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 13:27
Titel:
|
 |
Uuups, war eine alte Version
Hab die funktionierende oben rein kopiert. Sollte jetzt gehen.
Grüße
Jonas
_________________
1.) Ask Google & Matlab Documentation
2.) Ask gomatlab.de & Technical Support of MathWorks
3.) Go mad, your problem is unsolvable
|
|
|
Perilun |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 32
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 23.07.2018, 14:20
Titel:
|
 |
DAnke für deine Antwort, wie kann man aber bei den folgenden Matrizen die entsprechenden Werte in der Gleichen Zeile mit dem entsprechendem integer Wert mit übertragen werden?
A=[0.1,2;0.6,9;0.7,10;0.4,6;0.8,3;0.9,1];
B=[0.3,1;0.8,10;0.6,3;0.9,6;0.22,9;0.82,2];
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|