2016-09-16 2 views
-1

Ich habe ein Problem beim Importieren von Daten in den Matlab-Arbeitsbereich. Meine Datei ist eine TXT-Datei mit 8 Spalten und vielen Zeilen (ich kann sie nicht zählen). Die ersten 5 Spalten sind Zahlen, aber die 3 letzten sind Pfade (Buchstaben), jeder Pfad gibt die Position eines Bildes an, das den ersten 5 Daten entspricht. Ich möchte die ganze Datei in eine Matrix speichern, habe versucht, laden (aber es funktioniert nicht, wenn ich Zeichen gemischt), textscan (aber es gibt mir nur einen Zeilenvektor), Impordata (aber nur die ersten Spalten Daten schreiben), fscan .... Ich glaube ich habe jeden Befehl ausprobiert und funktioniert immer noch nicht..txt-Datei in Matlab importieren, alles funktioniert

Ich möchte angeben, dass der Text, den ich habe, eine andere Variable ist, die ich speichern möchte, um damit in Zukunft zu arbeiten, ist keine Überschrift.

Kann mir jemand helfen?

Vielen Dank im Voraus.

+0

Eine Matrix kann nur Nummer speichern, ich denke, dass Sie eine Zelle brauchen. – obchardon

+1

Mögliches Duplikat von [Txt Import in Matlab, verschiedene Zeilenformate] (http://stackoverflow.com/questions/17813666/txt-import-in-matlab-different-row-formats) – dasdingonesin

+0

Ich habe keine Überschrift, Ich möchte, dass mein Text eine weitere Variable ist, mit der ich in Zukunft arbeiten kann. Obchardon hat mein Problem bereits gelöst. – Alex

Antwort

2

Sie Ihre Daten in einer Zelle gespeichert werden sollte, nicht eine Matrix, textscan sollte ohne Probleme funktionieren

fileID = fopen('file.txt'); 
C = textscan(fileID,'%f %f %f %f %f %s %s %s'); 
fclose(fileID); 

Wenn Sie ein bestimmtes Trennzeichen zwischen Spalte haben Sie das Trennzeichen angeben:

C = textscan(fileID,'%f %f %f %f %f %s %s %s','Delimiter','|') 
+0

Ich habe versucht, Ihre Zeilen und Matlab liest C als 1x8-Zelle, jede Zelle enthält eine doppelte Daten 2149x1, und wenn ich darauf klicke, zeigt es einen Zeilenvektor mit meinen Daten. Aber ich möchte Matlab zeigen, dass meine Daten eine Tabelle haben, damit ich beliebige Daten nehmen kann. Gibt es eine Möglichkeit, die Daten von C zu nehmen, damit ich eine Zeile und eine Spaltenposition angeben kann, um die Daten zu übernehmen, die ich möchte? – Alex

+0

[Zugreifen auf Daten in einer Zelle] (http://mathworks.com/help/matlab/matlab_prog/access-data-in-a-cell-array.html) – obchardon

+0

Matlab ist kein DBMS, so dass Sie nicht gefunden werden dasselbe Konzept der Tabelle. – obchardon

Verwandte Themen