2013-06-26 7 views
0

У меня возникли проблемы с загрузкой файла на Matlab. Я загружал текстовые файлы много раз, прежде чем использовать опцию «load data» в меню файла или с помощью команды. Файл, который я пытаюсь прочитать, имеет метки столбцов, числовые данные и первые три столбца, состоящие из текстовых данных. Когда я попытался загрузить файл, он сказал, что файл состоит только из одного столбца и загружает всю информацию в один столбец, а не в 6 разных столбцов. В текстовом файле столбцы разделяются вкладками, и я устанавливаю разделитель как вкладки.Matlab не читает текстовый файл

Кто-нибудь есть идеи, почему он будет загружать информацию в один столбец, а не в отдельные столбцы?

Спасибо!

+1

Вы пробовали ['importdata'] (http://www.mathworks.com/help/matlab/ref/importdata.html)? Однако первые три текстовых столбца попадают в поле 'textdata' результата, но вы можете их извлечь. – pm89

+0

Да, я попробовал importdata, он все еще не работал. – astudent

ответ

0

Из предоставленных Вами сведений о форме вашего текстового файла я предполагаю, что это имеет следующий вид:

label1 info1 text1 1 1.1 3.1 
label2 info2 text2 2 2.1 3.2 
lebel3 info3 text3 3 3.1 3.3 
... 

Вы можете загрузить все эти данные с помощью цикла и функций fscanf и простых петель ,

Если N это количество строк вашего текстового файла следующий код может работать для вас:

f=fopen('test.txt'); 

for k=1:N 
    for i=1:3 
     a{k,i} = fscanf(f,'%s',1); 
    end 
b(k,:) = fscanf(f,['%f' '%f' '%f'],3); 
end 

fclose(f); 

Тогда вы будете иметь один сотовый массив строк a:

a = 

'label1' 'info1' 'text1' 
'label2' 'info2' 'text2' 
'lebel3' 'info3' 'text3' 

И один массив с числовыми данными b:

b = 

1.0000 1.1000 3.1000 
2.0000 2.1000 3.2000 
3.0000 3.1000 3.3000 

Чтобы получить дополнительную информацию, советую вам прочитать это page.

+0

Спасибо @ChocoPouce! Я пробовал это, но потому, что было так много данных (или, может быть, IDK), мой компьютер сказал бы, что больше нет места для памяти. – astudent