Hi, I'm trying to import the .dat file attached in Matlab but I have a problem. I'm using the following command: fid=fopen('doe.dat','rt'); A= fscanf(fid, '%f'); fclose(fid);
but A is just equal to 9 insted of the two columns of number.
How I can load the two columns as a matrix?
Thanks Alessandra

 Akzeptierte Antwort

Mostafa
Mostafa am 12 Okt. 2016

0 Stimmen

Try this:
A = textscan(fid, '%s', 'Delimiter', ' ');
impData = A{1}; %%This cell contains your data
impData = impData (3:end); %%The data excluding the first two lines
strData = cellfun(@strsplit, impData, 'UniformOutput',0); %%Split data into two rows
numData = cellfun(@str2double, strData, 'UniformOutput',0); %%Convert to numeric values
matData = cell2mat(numData); %%Convert into a matrix

3 Kommentare

Alessandra Cuneo
Alessandra Cuneo am 12 Okt. 2016
I've just tried to do it but the impData is a array of 161x1 with a lot of empty cell. So in the matData the empty cell become NaN. However the data are not split in to columns but matData remain a array of 161x1
Mostafa
Mostafa am 13 Okt. 2016
Can you upload the actual .dat file? I only considered the data in the picture as inupt.
Mostafa
Mostafa am 13 Okt. 2016
You can add this line to remove the empty cells before splitting it into rows.
impData(cell2mat(cellfun(@isempty,impData,'UniformOutput',0))) = [];

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by