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

Bestimmte Werte einer Matrix auslesen

 

Anna1988
Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2012, 17:00     Titel: Bestimmte Werte einer Matrix auslesen
  Antworten mit Zitat      
Hallo!
Ich habe eine Matrix und möchte jetzt nur die Zeilen in denen in der ersten Spalte eine 1 steht oder in der 2. Zeile true.
Wie kann ich das machen?
Die Matrix soll nachher auch alle anderen Spalten haben die sie vorher hatte...

zum Beispiel:
Vorherige Matrix
1 false 3 neu test
2 false 2 neu test
1 false 4 neu test
2 true 4 neu test

Neue Matrix
1 false 3 neu test
1 false 4 neu test
2 true 4 neu test


Weiß jemand wie das geht?
Lg Anna
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.500
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.06.2012, 17:53     Titel:
  Antworten mit Zitat      
Hallo,

das hängt auch vom Datentyp dieser Matrix ab. double, cell, dataset?

Generell würde ich etwas folgender Art versuchen:

Code:
A = A( A(:,1) == 1 | A(:,2) == true , :);


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 22
Anmeldedatum: 19.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.06.2012, 17:59     Titel:
  Antworten mit Zitat      
die Matrix besteht aus dem Datentyp cell
daher funktioniert == nicht...sorry hatte ich vergessen zu sagen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

das würde so gehen:
Code:
cond = cellfun(@(x) isequal(x, 1),A(:,1)) ...
    | cellfun(@(x) isequal(x, true),A(:,2));
A = A(cond  , :)


Um dir solche wüsten Konstrukte zu ersparen, würde ich auf Dauer versuchen, mit einer anderen Datenstruktur (z.B. Dataset Arrays) zu arbeiten.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2014, 18:46     Titel:
  Antworten mit Zitat      
Hi,

wie lautet der Befehl, wenn ich einfach nur aus einer 8000x1 double matrix den letzten wert auslesen will?
die länge muss nicht unbedingt 8000 sein, also "letzte zahl" wär der richtige befehl

muchas gracias
 
gast123345

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.01.2014, 18:58     Titel:
  Antworten mit Zitat      
Code:


für alle, die sich auch dieser schwierigen problematik widmen!
 
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.