2015-06-10 2 views
0

Я новичок в Matlab. У меня есть файл с именем iris.data, и я пытаюсь загрузить его содержимое в переменные. Файл есть на следующее содержании:Загрузка смешанных числовых и строковых данных

5.1,3.5,1.4,0.2,Iris-setosa 
4.9,3.0,1.4,0.2,Iris-setosa 
4.7,3.2,1.3,0.2,Iris-setosa 
4.6,3.1,1.5,0.2,Iris-setosa 
5.0,3.6,1.4,0.2,Iris-setosa 
5.4,3.9,1.7,0.4,Iris-setosa 
4.6,3.4,1.4,0.3,Iris-setosa 
5.0,3.4,1.5,0.2,Iris-setosa 
4.4,2.9,1.4,0.2,Iris-setosa 
4.9,3.1,1.5,0.1,Iris-setosa 
5.4,3.7,1.5,0.2,Iris-setosa 
4.8,3.4,1.6,0.2,Iris-setosa 
4.8,3.0,1.4,0.1,Iris-setosa 

Я пробовал:

load iris.data 

Но я получил:

Error using load 
Unknown text on line number 1 of ASCII file iris.data 
"Iris-setosa". 

почему это дает мне эту ошибку, или я полностью пошел на неправильное направление, и есть лучший способ сделать это.

Спасибо!

ответ

1

В тех случаях, когда вы совершенно не знаете, как импортировать данные, просто используйте Импорт данных GUI и сгенерировать скрипт. enter image description here

Это то, что вы получаете за свои дела:

%% Initialize variables. 
filename = 'C:\Users\Robert Seifert\Desktop\SO\data.txt'; 
delimiter = ','; 

%% Format string for each line of text: 
% column1: double (%f) 
% column2: double (%f) 
% column3: double (%f) 
% column4: double (%f) 
% For more information, see the TEXTSCAN documentation. 
formatSpec = '%f%f%f%f%*s%[^\n\r]'; 

%% Open the text file. 
fileID = fopen(filename,'r'); 

%% Read columns of data according to format string. 
% This call is based on the structure of the file used to generate this 
% code. If an error occurs for a different file, try regenerating the code 
% from the Import Tool. 
dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'ReturnOnError', false); 

%% Close the text file. 
fclose(fileID); 

%% Post processing for unimportable data. 
% No unimportable data rules were applied during the import, so no post 
% processing code is included. To generate code which works for 
% unimportable data, select unimportable cells in a file and regenerate the 
% script. 

%% Create output variable 
data = [dataArray{1:end-1}]; 
%% Clear temporary variables 
clearvars filename delimiter formatSpec fileID dataArray ans; 

и вы получите:

data = 

    5.1000 3.5000 1.4000 0.2000 
    4.9000 3.0000 1.4000 0.2000 
    4.7000 3.2000 1.3000 0.2000 
    4.6000 3.1000 1.5000 0.2000 
    5.0000 3.6000 1.4000 0.2000 
    5.4000 3.9000 1.7000 0.4000 
    4.6000 3.4000 1.4000 0.3000 
    5.0000 3.4000 1.5000 0.2000 
    4.4000 2.9000 1.4000 0.2000 
    4.9000 3.1000 1.5000 0.1000 
    5.4000 3.7000 1.5000 0.2000 
    4.8000 3.4000 1.6000 0.2000 
    4.8000 3.0000 1.4000 0.1000 

Сценарии вы получаете действительно хорошо прокомментирован, и вы можете применить его на почти в любом случае и узнать;)

1

Чтобы прочитать содержимое файла, вы можете использовать:

filename = 'filename.extension'; 
fileID = fopen(filename); 
fileData = fread(fileID); 
fclose(fileID); 

данные теперь в переменной FILEDATA в вашем рабочем пространстве. Для получения данных в строке, используйте fileStr = char(fileData)'

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