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

Spaltenvektoren einer Matrix miteinander vergleichen

 

katzac
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 13:17     Titel: Spaltenvektoren einer Matrix miteinander vergleichen
  Antworten mit Zitat      
Hallo!

Mein Problem ist folgendes:

Ich habe eine Matrix mit insgesamt 8 Spalten. Die erste Spalte gibt durchgehend Werte von 1-1900 aus. Die anderen Spalten habe ich vorher schon durch andere Berechnungen ermittelt und sie geben mir an, welche Werte der 1-1900 in ihnen vorkommen.

Beispiel: In Spalte 3 kommen die Werte 3,5,500 und 1899 vor, heißt ich habe einen Vektor mit insgesamt 4 einsen und 1896 nullen. (Ist nicht so, aber würde sonst zu lang werden hier Wink)

Die anderen Spalten geben mir auch alle 1er oder 0en aus; also true/false Werte.

Ich möchte jetzt alle Vektoren miteinander vergleichen und wenn bei allen bei zum Beispiel der Stelle 1 eine null vorkommt, diese Zeile löschen; bei allen acht Spalten.

Mein Zielt ist es, dann nur noch die erste Zeile mit den gekürtzten Werten von 1-1900 und in den anderen Spalten nur noch die 1er zu haben.

Ich weiß leider nicht, wie ich das angehen soll.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

ich verstehe die genaue Problemstellung nicht, aber das Problem sollte sich mit logischer Indizierung lösen lassen, z.B.

Zeilen, in denen Spalten 2-8 eine logische 1 haben:
Code:
rows = all(M, 2);
M = M(rows, :);


Mit ähnlichen Abfragen (ggf. mit any, ~) lassen sich die Zeilen, in denen Spalten 2-8 keine 1, mindestens eine 1 etc. haben, finden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
katzac
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 16:42     Titel:
  Antworten mit Zitat      
Hallo Harald!

Danke dir schon mal für deine Antwort!

Leider weiß ich nicht, wie ich das anwenden solle.

Hier mal ein Beispiel zu meinem Code:

Code:

a = [1;2;3;4;5;6];
b = [0;1;1;0;0;0];
c = [0;1;0;0;1;0];
d = [1;0;0;0;1;0];
e = [0;1;1;0;0;0];
f = [0;1;0;0;0;0];
g = [1;1;1;0;1;0];

M = [a,b,c,d,e,f,g];

 


Es müssen ja dann Zeile 4 und Zeile 6 der Matrix gelöscht werden, weil da nur Nullen drin sind, in Spalte b bis g an vierter und sechster Stelle. Es soll aber auch in a die 4 und die 6 gelöscht werden, so dass ich nachher eine 4 * 7 Matrix habe.

Viele Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

Code:
rows = any(M == 1, 2);
M = M(rows, :)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
katzac
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 16:59     Titel:
  Antworten mit Zitat      
Hallo Harald!

Super, vielen lieben Dank!!
Private Nachricht senden Benutzer-Profile anzeigen
 
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.