|
|
Zwei Matrizen unterschiedlicher Dimension vergleichen |
|
calculator2000 |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 17.07.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2014, 15:52
Titel: Zwei Matrizen unterschiedlicher Dimension vergleichen
|
 |
|
 |
|
Hallo,
meine ersten Versuche mit Matlab zu arbeiten gestalten sich leider als sehr schwierig. Da ich trotz intensiver Suche nach einer Lösung meines Problems nicht fündig wurde wende ich mich an diese Forum, dass mir hoffentlich weiter helfen kann. Es geht um folgendes:
Die Elemente zweier Matrizen mit beispielsweise der Dimension m1(145x273) und m2(99x337) sollen miteinander verglichen werden.
Meine Idee wäre es, die m2 von m1 zu subtrahieren und so bei völliger Übereinstimmung der Matrizen eine Null-Matrix zu erhalten bzw. abschätzen zu können, wie weit die Abweichung voneinander ist.
Das Problem ist, dass das Subtrahieren aufgrund der unterschiedlichen Dimensionen nicht möglich ist. Meine erste Idee war es jeweils eine Nullmatrix mit m1 und m2 zu füllen um gemeinsame Dimensionen zu erhalten nur leider komme ich mit der Programierung nicht weiter. Welche Möglichkeiten gibt es dieses Problem zu lösen bzw. gibt es noch andere Ideen, wie ein Vergleich stattfinden könnte?
Über Anregungen bin ich sehr dankbar.
Viele Grüße
Christian
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 17.07.2014, 16:03
Titel:
|
 |
Hallo,
die Matrizen sind ja nun definitiv nicht gleich. Um das zu überprüfen:
Falls elementweise verglichen werden soll: welche Elemente von m1 sollen denn mit welchen von m2 verglichen werden?
Grüße,
Harald
|
|
|
Headfield |

Forum-Anfänger
|
 |
Beiträge: 14
|
 |
|
 |
Anmeldedatum: 01.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.07.2014, 16:08
Titel:
|
 |
Hallo Christian,
die einfachste, wenn auch nicht eleganteste Variante wäre, dass du einfach Zelle für Zelle der Matrizen miteinander vergleichst oder Zelle für Zelle die Differenz bildest und diese dann aufsummierst.
Zwei Schl eifen(eine für Zeile, eine für Spalte), wobei die Laufzeitvariable für die 1. und 2. Schleife aus der Höhe und Breite der kleineren Matrix kommt.
sowas wie:
a = 0;
for i = 1:size(matrix1,1)
for j = 1:size(matrix1,2)
a = a+abs(matrix1(i,j)-matrix2(i,j));
end
end
oder aber:
du wählst in der zweiten Matrix nur den Teil aus der ersten Matrix aus (sofern es sich um einen quadratischen Ausschnitt handelt), d.h.
matrix3 = matrix2(size(matrix1));
matrix1 == matrix3
und dann hast du deine Antwort
|
|
|
calculator2000 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 17.07.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.07.2014, 13:27
Titel:
|
 |
Hallo,
vielen Dank für eure schnelle Hilfe. Ich habe mein Problem nun gelöst und zwar folgendermaßen:
Das Programm ergänzt Spalten und Zeilen gefüllt mit Nullen bei der kleineren Matrix (m1) und erreicht somit die gleiche Größe wie m2. Danach ist eine Subtraktion möglich, da sie die selbe Dimension haben.
Funktioniert soweit zufriedenstellend
Viele Grüße
|
|
|
|
|
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.
|
|