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

Cell in Column vectors konvertieren

 

motzer
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2014, 14:35     Titel: Cell in Column vectors konvertieren
  Antworten mit Zitat      
Hallo Leute,

bisher habe ich den Data Import Dialog manuell benutzt in Matlab. Hier hatte ich eine Textdatei vorliegen mit vier Spalten welche durch Tab getrennt sind. Matlab erkennt die vier Spalten und ich kann auswählen als was sie importiert werden sollen. Ich hatte mich für Column Vectors entschieden und konnte die Daten gut verarbeiten.

Jetzt wollte ich das ganze programmatisch lösen und habe es mit ein wenig geparse hinbekommen auch Header gut zu ignorieren und die Daten auch auszulesen, jedoch liegen sie jetzt in Cells vor Beispiel : 7000x1 Cell

In jeder Zelle liegt ein Wert zwischen 0-255, ich dachte man kann einfach
cell2mat(cell) das ganze in einen Vektor umwandeln, jedoch bekomme ich den Fehler

X ist also ein 7000x1 Cell

Code:

x_array=cell2mat(x);
 



Code:

Error using cat
Dimensions of matrices being concatenated are not consistent.

Error in cell2mat (line 83)
            m{n} = cat(1,c{:,n});
 


Habe den Fehler natürlich gegoogled aber leider kann ich nichts auf mich anwenden. Wenn ich den manuellen Dialog von Matlab verwende bekomme ich 7000x1 double Vektoren raus.

Muss ich eine andere Funktion verwenden ?

Mit freundlichen Grüßen
motzer
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.11.2014, 14:52     Titel:
  Antworten mit Zitat      
Nur das 1. Bsp. funktioniert für einen entsprechenden cell-array

Code:

array = cell2mat({0;11;255}) % Daten in cell als Zahl
array = cell2mat({'0';'11';'255'}) % Daten in cell als string
 


Da du die Daten ja aus einer Datei einliest, liegen sie wohlmöglich als string und nicht als Zahl vor. Wie liest du denn die Daten ein? Evtl. kannst du hier das Format ändern...

Code:
array = textscan(fid,'%d');
Private Nachricht senden Benutzer-Profile anzeigen
 
motzer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2014, 15:11     Titel:
  Antworten mit Zitat      
Danke perfekt, ich habe mit textscan Strings aus den Daten gemacht, habe es jetzt einfach auf %d geändert und es werden automatisch keine Cells mehr sondern int32 Daten.

Hier ist aber auch wieder ein kleines Problem eine Information der Textdatei ist ein Zeitstempel, welcher die Form

Code:

13199.917969
 


in jeder Zelle hat. Wenn ich diesen mit %s einlese passt das auch, wenn ich %d verwende rundet er nach 3 Stellen ,in dem Übersichtfenster (wenn ich doppelt auf die Variable klicke) erscheint dann der nicht gerundete Wert, aber er nimmt den gerundeten.

Beispiel
Code:

1.319991796900000e+04  (bei Doppelklick)
1.3200e+04 (einfach so in der Anzeige der Tabelle
 


Es gab doch irgendeinen Parameter in Matlab mit dem ich quasi die verwendete Auflösung setzen kann, wie war der nochmal ?

Bis hier hin danke schonmal für die Hilfe

mfg
motzer
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 18.11.2014, 15:18     Titel:
  Antworten mit Zitat      
Code:
Private Nachricht senden Benutzer-Profile anzeigen
 
motzer
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.11.2014, 16:24     Titel:
  Antworten mit Zitat      
Hallo
perfekt habs rausbekommen danke =)

gruß
motzer
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.