Good way to import data file

13 visualizaciones (últimos 30 días)
Kieran Hazell
Kieran Hazell el 5 de Mayo de 2015
Editada: Kieran Hazell el 6 de Mayo de 2015
Hey, I need to import a large data file into matlab, but I'm unsure of the best way to do it. I've been experimenting with the fopen and textscan but can't get anything to work correctly. Any help is appreciated.

Respuesta aceptada

Michael Haderlein
Michael Haderlein el 5 de Mayo de 2015
Editada: Michael Haderlein el 5 de Mayo de 2015
If the format doesn't change through the file (such that after 10 s, suddenly also data about whatever appears), you can simply use:
fid=fopen('test.txt');
data=textscan(fid,'%*s%f','delimiter',':');
fclose(fid);
t=data{1}(1:4:end);
gs=data{1}(2:4:end);
gflat=data{1}(4:4:end);
gflong=data{1}(3:4:end);

Más respuestas (1)

David Sanchez
David Sanchez el 5 de Mayo de 2015
I'm sure this might be shorter, but I guess it'll be a valid solution for you:
fid = fopen('your_file_name_here.txt');
my_file = textscan(fid, '%s', 'delimiter', '\n');
my_file = my_file{1};
fclose(fid)
% now you have a cell array (my_file) with each line of your *.txt in a different
% cell
% you can extract the values like this:
L = length(my_file); % number of lines in your file
my_data = zeros(L,1); % initialization of matrix to hold your data
for k = 1:L % loop along each line
str_value = textscan(my_file{k}, '%s %s', 'delimiter', ':' );
my_data(k) = str2double(cell2mat(str_value{1,2}));
end
I guess you can figure out how to assign every four values to each variable

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by