2014-10-09 5 views
0

Если есть .txt файл в форматеMatlab чтение TXT файл в формате

Имя, дом, 1, 2, 3, 3, 3, 3

Это означает, что первые два столбца строки, а остальные являются целыми числами

Как читать первые два столбца в виде векторов строк и другую матрицу в виде числовых значений.

ответ

0

Использование textscan:

fileID = fopen('sometextfile.txt'); 
C = textscan(fileID,'%s %s %f %f %f %f %f %f','Delimiter',','); % assuming you want double data types, change as required 
fclose(fileID); 
celldisp(C) % C is a cell array 
1

Один из способов сделать это, так что вы точно знаете, что происходит построчно в следующем фрагменте кода:

fid = fopen('textfile.txt'); 
clear data 

tline = fgetl(fid); 
n = 1; 
while ischar(tline)   
    data(n,:) = strsplit(tline(1:end),', '); 
    n=n+1; 
    tline = fgetl(fid); 
end  

fclose(fid); 

dataStrings = data(:,1:2); 
dataValues = str2double(data(:,3:end)); 

где данные содержит все, что в string type, dataStrings содержит только первые 2 столбца в виде строк, а dataValues ​​ содержит остальные столбцов типа double.

Таким образом, вы получаете простые матрицы, то есть вам не нужно беспокоиться о структурах или массивах ячеек.

Смежные вопросы