2016-09-24 5 views
0

ich eine Datei in der ersten Zeile haben, ist von der Form:Nehmen Array Eingabe aus einer Datei

6, [6; 2], 1000, 0.5, 0.01, [6 2], 0, 3.1416, [1 1 1] 

Jede der Zellen kann ein Vektor/Array, aber nur eindimensional

Ich versuchte Einnahme Eingang textscan mit:

C = (fid, '%f%f%f%f%f%f%f%f%f',1,'delimiter',','); 

aber geben Sie mir nicht das Recht ausgegeben.

Wie kann ich diesen Eingang so nehmen, dass ich alle Arrays bekomme?

Vielen Dank im Voraus!

+0

Veröffentlichen Sie ein kleines ausführbares Beispiel (einschließlich einer kleinen Beispieldatei), und erläutern Sie, wie sich die Ausgabe von Ihren Erwartungen unterscheidet –

Antwort

0

textscan mit dem Formatbezeichner ist zum Scheitern verurteilt, weil die immer [, ;, , und ] Zeichen korrekt nicht analysiert gehen werden.

Sie können stattdessen die Zeichenfolge an den Kommas trennen und dann str2num verwenden, um jedes Stück in eine Zahl oder ein Array umzuwandeln. Dies setzt voraus, dass Sie niemals ,innerhalb eines Arrays verwenden.

value = cellfun(@str2num, strsplit(str, ','), 'uniform', 0)