2016-01-26 2 views
1

Я продолжаю читать текстовый файл в матлаб.
Образец текстового файла, как показано ниже:

Sequence, ранг, дисциплина, sincephd, услуги, секс, зарплата
1, Prof, B, 19,18, Мужчина, 139750
2, профессор, B, 20,16, Мужчина, 173200
3, AsstProf, B, 4,3, мужчина, 79750

чтение текстового файла в matlab

Мой код, как показано ниже:

clc 
clear all 
DELIMITER = ','; 
HEADERLINES = 1; 
% Import the file 
newData1 = importdata('afifi.txt', DELIMITER, HEADERLINES); 
% Create new variables in the base workspace from those fields. 
vars = fieldnames(newData1); 
for i = 1:length(vars) 
    assignin('base', vars{i}, newData1.(vars{i})); 
end 

По какой-то причине он не будет внимательно прочитайте последний столбец. Он только считывает первое значение в первой строке, затем не читает остальную часть последнего столбца. Кто-нибудь, пожалуйста, скажите мне, как это исправить!

+0

Файл импортируется правильно, 'newData1' имеет два поля:' data' и 'textdata', первый имеет столбец зарплаты, а второй - остальные поля. Как вы хотите импортировать данные? Посмотрите на [textscan] (http://se.mathworks.com/help/matlab/ref/textscan.html). –

+0

Я бы хотел, чтобы все они были в одной переменной. Почему он разделен на данные и текстовые данные? Я имею в виду, почему не появляются значения 173200 и 79750? –

+0

Существует также различные [способы импорта текстовых файлов] (http://de.mathworks.com/help/matlab/import_export/ways-to-import-text-files.html) в Matlab. –

ответ

0

Если переименовать afifi.txt в afifi.csv, вы можете сделать это,

[num, txt, all] = xlsread('afifi.csv'); 

И получить все в all

2

Вы можете использовать readtable, чтобы легко импортировать текстовый файл со смешанными данными. Линия будет выглядеть следующим образом:

readtable('afifi.txt','Delimiter',DELIMITER,'ReadVariableNames',true); 

После вы можете заменить fieldnames(newData1) с newData1.Properties.VariableNames, чтобы получить columnnames. Соединенный, код из вашего вопроса, работает по желанию:

clc 
clear all 
DELIMITER = ','; 
% Import the file 
newData1 = readtable('afifi.txt','Delimiter',DELIMITER,'ReadVariableNames',true); 
% Create new variables in the base workspace from those fields. 
vars = newData1.Properties.VariableNames; 
for i = 1:length(vars) 
    assignin('base', vars{i}, newData1.(vars{i})); 
end 
Смежные вопросы