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

Finden von Werten aus Matrix A, aber nicht in Matrix B

 

clarke
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 04.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2015, 10:48     Titel: Finden von Werten aus Matrix A, aber nicht in Matrix B
  Antworten mit Zitat      
Hallo zusammen,

ich habe momentan zwei Matrizen mit jeweiligen Koordinaten (x,y,z) gegeben.
Ich suche jetzt alle Werte, die in Matrix A vorkommen, aber eben nicht in Matrix B.
Bemerkung: die Werte sind nicht in der gleichen Reihenfolge abgespeichert.

Vermutlich gibt es eine Lösung im Stile von Durchlaufen der Matrix und jeden einzelnen Wert mit if (find) etc. abzuklären, aber ggf. gibt es ja eine elegantere/zeiteffizientere Lösung?

Beide Matrizen haben Größen von ca. 500.000x3.

Gruß
clarke
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 31.08.2015, 11:03     Titel:
  Antworten mit Zitat      
setdiff
grüße
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
clarke
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 04.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2015, 13:54     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
setdiff
grüße


Ich danke dir!
Private Nachricht senden Benutzer-Profile anzeigen
 
clarke
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 04.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.08.2015, 16:17     Titel:
  Antworten mit Zitat      
okay, ich muss das Thema leider doch nochmal anstoßen.

Ich habe jetzt das ganze so umgesetzt:

Code:
A = load('Schritt2.txt');
B = load('Schritt3.txt');
C = setdiff(A,B, 'rows');


Was ich allerdings nicht verstehe, ist die Größe der resultierenden Matrix.
sizeA = 493225x3
sizeB = 282973x3
sizeC = 142536x3

Müsste nicht sizeC + sizeB = sizeA sein? So unterscheiden sie sich um knapp 70.000 Werte. Andersrum ist allerdings

Code:
D = setdiff(B,A, 'rows');


eine 0x3 Matrix - es gibt also keine Werte aus B, die nicht in A vorkommen, was für mich auch komplett logisch ist.
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 31.08.2015, 16:23     Titel:
  Antworten mit Zitat      
Zitat:
Müsste nicht sizeC + sizeB = sizeA sein?

wenn daten doppelt vorkommen dann nicht.
kannst du mit unique überprüfen
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
clarke
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 04.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.09.2015, 11:44     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
Zitat:
Müsste nicht sizeC + sizeB = sizeA sein?

wenn daten doppelt vorkommen dann nicht.
kannst du mit unique überprüfen


Jap, dann passt es. Auch wenn das inhaltlich keinen Sinn für mich ergibt Razz

Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 01.09.2015, 12:26     Titel:
  Antworten mit Zitat      
Zitat:
Auch wenn das inhaltlich keinen Sinn für mich ergibt Razz

warum nicht? er giebt halt nur die daten an die in A drin sind aber nicht in B dabei giebt er aber zb nicht als ergebniss [1 1] aus. ist ja der selbe wert.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
clarke
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 04.05.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.09.2015, 12:38     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
Zitat:
Auch wenn das inhaltlich keinen Sinn für mich ergibt Razz

warum nicht? er giebt halt nur die daten an die in A drin sind aber nicht in B dabei giebt er aber zb nicht als ergebniss [1 1] aus. ist ja der selbe wert.


Mit inhaltlich meinte ich meine Daten - es kann eigentlich nicht sein, dass ich 70.000 doppelte Werte habe. Deine vorgeschlagenen Befehle funktionieren perfekt!
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.