WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Elemente mehrerer Matritzen vergleichen

 

Peter P.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2016, 18:37     Titel: Elemente mehrerer Matritzen vergleichen
  Antworten mit Zitat      
Hallo Zusammen,

Ich habe mehrere Matritzen (n x n) gleicher Größe. Nun möchte ich diese Matritzen Elementeweise miteinander vergleichen.
In eine neue Matrix soll der Wert des jeweiligen Elemente-Vergleichs geschreiben werden welcher am höchsten ist.
Gibt es hierfür eine einfache Lösung? Paarweise ist dies kein Problem, da ich aber je nach Setup eine unterschiedliche Anzahl an Matritzen haben und die Anzahl sehr groß sein kann, hoffe ich auch eine effektivere Lösung.

Viele Grüße
Peter


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.07.2016, 21:06     Titel:
  Antworten mit Zitat      
Hallo,

wie sieht denn der Vergleich aus? Differenz? Betragliche Differenz?

Grundsätzlich etwas in der Form
Code:
max(abs(A(:) - B(:)))


Falls die Matrizen in einem Cell Array vorliegen, bietet sich eine Schleife an.
Falls nicht, bitte angeben, wie die Matrizen vorliegen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter P.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2016, 10:34     Titel:
  Antworten mit Zitat      
Ja der Vergleich sieht so aus:
Code:
M_Max = max(A,B);


also:
Code:
B = [1 2 4 8 16 8 4 2 1
     1 2 4 8 16 8 4 2 1
     1 2 4 8 16 8 4 2 1
     1 2 4 8 16 8 4 2 1
     1 2 4 8 16 8 4 2 1];
       
A = [4 2 4 8 16 8 4 2 1
     4 2 4 8 16 8 4 2 1
     4 2 4 8 16 8 4 2 1
     4 2 4 8 16 8 4 2 1
     4 2 4 8 16 8 4 2 1];

mit dem gewünschten Ergebnis:
Code:
M_Max =

     4     2     4     8    16     8     4     2     1
     4     2     4     8    16     8     4     2     1
     4     2     4     8    16     8     4     2     1
     4     2     4     8    16     8     4     2     1
     4     2     4     8    16     8     4     2     1


mein Problem ist wie ich mit mehr als 2 Matritzen umgehe.
Schön wäre es nach dem Motto
Code:
M_Max = max(A,B,C,..);

Wobei die Funktion max ja nur für 2 Matrizen ausgelegt ist.

Meine Matritzen liegen in einem Cell-Array (CA_Objekte{n,1}) in der ersten Spalte.
Über eine Schleife könnte ich klar jede Matrize mit z.B. der ersten vergleichen (mit der Funktion max). Das würde mir mein gewünschtes Ergebnis bringen. geht dies aber nicht auch eleganter in einer Zeile?

Grüße
David
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2016, 11:20     Titel:
  Antworten mit Zitat      
Hallo,

geht es um das Maximum zwischen je zwei Matrizen oder von allen Matrizen?

Falls letzteres: ein 3D-Array M mit allen Matrizen erstellen und dann entlang der 3. Dimension das Maximum nehmen.

Code:
C = {[1,2; 3,4], 5*randn(2,2), 10*rand(2,2)}
M = cat(3, C{:})
max(M, [], 3)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter P.

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2016, 14:14     Titel:
  Antworten mit Zitat      
Je genau es geht um das Max aller Matrizen.

ja einfach die dritte Dimension! Super, danke für die Idee/Lösung.

Grüße
David
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.