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

string aus cell array auslesen

 

Sephieroth
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.03.2011, 17:18     Titel: string aus cell array auslesen
  Antworten mit Zitat      
Hallo!

Ich habe ein cell array der Größe 1000 x 1. In jedem Feld ist wiederum ein 1x1 cell array enthalten. Jedes 1x1 cell array enthält dann ein char array 1xb (b ist kein fester Wert, sondern zwischen 2 und 7).
Dieses char array ist eigentlich eine Zahl, die ich über fgetln eingelesen habe und in dem array gespeeichert habe.
Wie kann ich jetzt möglichst OHNE eine SCHLEIFE zu benutzten sämtliche char arrays in ihren int-Wert zurück wandeln und in einer Variablen speichern, um sie dann in eine neue csv-Datei schreiben zu können.
Egal was ich bis jetzt versucht habe, es ist daran gescheitert, dass die Matrix-Dimensionen der char arrays nicht übereinstimmen und somit vertcat / horzcat versagen. bzw. bei horzcat verliere ich ja den Wert der Zahl, da alle Zahlen ohne Komma aneinandergekettet werden.
Vielen Dank schon im Voraus!

Gruß,

Jens.
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.03.2011, 01:29     Titel: Re: string aus cell array auslesen
  Antworten mit Zitat      
Hallo Jens,

Du hast da eine etwas vertrackte Datenstruktur. Muss die so verschachtelt sein?

Code:
C = cell(1000, 1);
for i = 1:1000
  C{i} = {sprintf('%d', round(rand*1e7))};
end
%  Richtig soweit?
% Dann zunächst einen Cell string erstellen:
C2 = cat(1, C{:});
% Danach einen String, Komma als Separator:
S = sprintf('%s,', C2{:});
% Nun einlesen als DOUBLE:
D = sscanf(S, '%d,');
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Sephieroth
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 11.03.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.03.2011, 11:52     Titel:
  Antworten mit Zitat      
Danke!
Die Datenstruktur ist so kompliziert, weil ich eine csv-einlese, die eigentlich 3 Spalten hat, aber in jeder 1000. Zeile dann doch 5 Spalten.
Das lese ich dann mit fgetln ein und spalte es mit regexp - das liefert dann ein cell array zurück, welches ich wiederum in einem cell array speicher Wink. Was besseres ist mir da nicht wirklich eingefallen (besonders weil ich strings und int einlese, die ich beide noch manipulieren muss...)

Gruß,

Jens.
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.