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

Matrix mit Text und Zahl

 

Mike0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2010, 14:53     Titel: Matrix mit Text und Zahl
  Antworten mit Zitat      
Ich habe ein rieseiges Problem, das mich langsam in den Wahnsinn treibt. Kann mir bitte jemand erklären, wie man mit Vektoren umgeht, die einmal Zahlen beinhalten und einmal Text?

Ich habe eine CSV die ich mit textread einlese, dabei spezifiziere ich die Integers mit %n, die Zahlen mit %f und die Texte mit %s.

Wenig später musste ich merken, dass ich die Funktion char benutzen muss, um Matlab zu sagen, dass da ein Sting ist. Plötzlich stelle ich fest, dass der String weg ist und beispielsweise aus einem "B" die Zahl 66 wurde. Ich verstehe das nicht, kann bitte jamdn helfen?

Um das alles per "Ausprobieren" zu verstehen habe ich folgendes Beispiel:

Code:
NUM=[1;2;3;4];
SIDE=['B';'S';'S';'B'];
NUM
SIDE
Comb=[NUM SIDE]


Die Matrix Comb besteht aber dann nur aus dem Vektor SIDE? Warum??? Mich macht das wahrnsinnig. Please help!!!

Edit by Bijick: Code-Umgebung ergänzt. Bitte denke nächstes Mal selbst daran. Very Happy


Mike0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2010, 15:53     Titel:
  Antworten mit Zitat      
Um das deutlicher zu machen, hier mein genaues Problem.

Im Anhang ist eine Textdatei: Elemente getrennt mit Semicolon, eine Textspalte und zwei Zahlenspalten.

Ich lese sie so ein:

Code:
[ORDERTYPE,PRICE,ORDERSIZE] = textread('test.txt', '%s %f %n','delimiter', ';');


Nun existieren nach meinem Verständnis 3 Spaltenvektoren.

Ich möchte diese Spaltenvektoren nun sortieren, nicht jeden einzeln, sondern als gesamtes. Ich möchte sortrows dafür benutzen. Ich will daher die drei Spaltenvektoren zu einer Matrix A zusammenfassen, um sie dann nach der Spalte ORDERTYPE sortieren zu können (also zuerst die B und dann die S).

Ich versuche es so:
Code:
A=[ORDERTYPE PRICE ORDERSIZE]


Und ich versuche es so:
Code:
A=horzcat(ORDERTYPE, PRICE, ORDERSIZE)


Ich bekomme aber beide male die Fehlermeldung:
??? Error using ==> horzcat
CAT arguments dimensions are not consistent.

Ich überprüfe die Größe der Spaltenvektoren und alle sind 5Reihen/1Spalte... Was also passt hier nicht? Es liegt an dem ORDERTYPE Vektor, da es ohne diesen funktioniert. Wie aber erkennt MatLab, dass es sich hier um einen String handelt? Die Funktion
Code:
ändert auch nichts...

??

test.txt
 Beschreibung:

Download
 Dateiname:  test.txt
 Dateigröße:  75 Bytes
 Heruntergeladen:  458 mal
 
Evron
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 51
Anmeldedatum: 22.11.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2010, 16:33     Titel:
  Antworten mit Zitat      
Hallo,

erlaubt meines Wissens nach in einer Matrix nur einen Datentyp und Double (Standard für Zahlenwerte) oder Integer sind etwas völliges anderes als Strings, denn Strings haben eine variable Länge, während die anderen je nach genauen Typ zwischen 1 und 8 Byte schwanken. Wenn der Ordertype immer nur einen Buchstaben umfasst, dann wandle ihn doch einfach in seinen ASCII Wert um, welche die gleiche Odnung kennt wie der Buchstabe (A < B und 1 <2). Dann gibt es keine Probleme mehr die drei Vektoren zu vereinigen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mike0815

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.04.2010, 10:51     Titel:
  Antworten mit Zitat      
Ja, Du hast Recht... jetzt klappt es. Danke. Very Happy
 
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.