|
|
Problem mit Vergleich - Nummer und String |
|
AluexRookie |

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 10.01.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2013, 15:39
Titel: Problem mit Vergleich - Nummer und String
|
 |
Hallo Freunde,
Habe folgendes Problem und versuche es vereinfacht darzustellen.
Habe zwei Vektoren der Form:
x=
36133M
775075
50888T
796851
y=
775075
'36133M'
458884
'80858Y'
usw. (ist nur ein Beispiel, natürlich sind die Vektoren viel länger)
Das Ziel ist jetzt x mit y zu vergleichen und falls der Wert doppelt vorkommt, dann diesen Wert aus dem Vektor x löschen.
Hier mal der Ansatz meines Codes:
Normalerweise müsste er nun 36133M und 775075 aussortieren. Das Problem ist allerdings, dass er nur 36133M aussortiert, weil er 775075 scheinbar nicht erkennt.
Verstehe außerdem nicht ganz warum in Y die strings in Anführungszeichen stehen und in x nicht. Liegt es evtl daran??
Würde mich sehr über schnelle Hilfe freuen.
Beste Grüße
|
|
|
|
|
denny |

Supporter
|
 |
Beiträge: 3.853
|
 |
|
 |
Anmeldedatum: 14.02.08
|
 |
|
 |
Wohnort: Ulm
|
 |
|
 |
Version: R2012b
|
 |
|
|
 |
|
Verfasst am: 05.06.2013, 15:53
Titel:
|
 |
Hallo
weil du unterschiedliche Datentypen hast, funktioniert dein Konstrukt deswegen nicht
x ist wohl ein CHAR-Matrix während y ein Cell-Array. Cell-Array kann unterschiedliche Typen beinhalten, bei dir vermutlich sind das Strings und Doubles.
Hier musst du wohl den Datentyp zuerst anpassen.
Hilfreiche Funktionen könnten ISA, SPRINTF sein.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 05.06.2013, 16:08
Titel: Re: Problem mit Vergleich - Nummer und String
|
 |
Hallo AluexRookie,
Zitat: |
y=
775075
'36133M'
458884
'80858Y'
Verstehe außerdem nicht ganz warum in Y die strings in Anführungszeichen stehen und in x nicht.
|
Bitte erkläre noch den Typ der "Vektoren". Es ist essentiell für die Lösung zu verstehen, wieso manche Zahlen und andere Strings zu sein scheinen. Benötigst Du wirklich einen solchen Mix?!
Wenn alle Elemente den gleichen Typ haben, ist ISMEMBER eine einfache und effiziente Lösung.
Gruß, Jan
|
|
|
AluexRookie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 10.01.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.06.2013, 16:22
Titel:
|
 |
Erstmal Danke für eure schnellen Antworten!
Ich hatte auch die Vermutung dass es an unterschiedlichen Datentypen liegen könnte. Nur zeigt Matlab die Vektoren als cell an.
Die Daten sind von Excel eingelesen. Wobei der X Vektor im laufe des längeren Codes bereits verwendet worden ist und Y unbehandelt blieb.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 05.06.2013, 17:04
Titel:
|
 |
Hallo AluexRookie,
Ich gehe davon aus, dass ein Cell String für Dich am nützlichsten wäre. Dann:
Gruß, Jan
|
|
|
AluexRookie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 10.01.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.06.2013, 12:33
Titel:
|
 |
Wie ich gerade sehe, habe ich mich etwas unglücklich ausgedrückt. Die Werte die gleich sind, sollen aussoortiert werden im Sinne von: In einen extra Vektor aufführen.
Hier macht er jetzt im Prinzip das Gegenteil. Schreibt die raus, die nicht gleich sind.
Um noch einmal die Ausgangssituation zu verdeutlichen:
Habe zwei structs mit Inhalt: Ein Vektor mit den Kennziffern, eine Matrix mit den dazugehörigen Daten und ein Vektor die hierbei jetzt nicht wichtig ist.
Der eine struct beinhaltet Daten zum Kapital einzelner Unternehmen, der andere struct beinhaltet Börsenwerte zu einzelnen Unternehmen.
Da ich diese Werte nun in relation setzen möchte, ist es wichtig dass nur die Werte gleicher Unternehmen in relation gesetzt werden. Und deshalb muss ich Unternehmen, sowie deren Daten, die nicht in beiden Matrizen bzw. Vektoren vorhanden sind, rausschmeißen.
Hoffe das hilft um die Problematik leichter zu verstehen
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.06.2013, 13:29
Titel:
|
 |
Hallo AluexRookie,
Es wurde immer noch nicht erklärt, welchen Typ die Daten haben.
Zitat: |
Hier macht er jetzt im Prinzip das Gegenteil |
Wo macht wer welches Gegenteil?
Gruß, Jan
|
|
|
AluexRookie |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 13
|
 |
|
 |
Anmeldedatum: 10.01.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 10.06.2013, 13:56
Titel:
|
 |
Hatte ich oben kurz erwaehnt dass matlab die vektoren und matrizen als "cell" anzeigt.
Mit gegenteil meine ich, dass durch den von dir aufgefuehrten code, die ungleichen unternehmen rausgesucht werden und die gleichen rausgeschmissen. Mein ziel ist aber eben umgekehrt.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 10.06.2013, 14:22
Titel:
|
 |
Hallo AluexRookie,
Ja, das Array ist ein Cell. Un ich habe geraten, ob die DOUBLEs im Inhalt des Cells in Strings umgewandelt werden sollen. Ich weiß aber immer noch nicht, ob dies richtig geraten war.
Kann es sein, dass Du einfach nur ein "not()" in den Code einfügen musst, um aus einem ISMEMBER etwas wie ISNOTMEMBER zu machen?
Gruß, Jan
|
|
|
jurtsche |

Forum-Century
|
 |
Beiträge: 123
|
 |
|
 |
Anmeldedatum: 26.03.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 12.06.2013, 07:17
Titel:
|
 |
|
|
|
|
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.
|
|