开发者

Reading text file, matlab

I am reading a text file 'mytext.text' in matlab. Data file looks like:

1   -4436.6910  415.1843    -3019.7497  1,3,4,5,21,23

2   -4366.4541  1353.9975   -3085.1166  1,3,4,23

....

I don't know the length of Col5. How can I read it in matlab?

fid=fopen( 'mytext.text','r');

Grdata = textscan(fid, '%d %f %f  %f  (Col 5 what should be)% This line is 
pr开发者_开发知识库oblem%  

fclose(fid); 

Any help.


One possibility is to read the last column as string, then convert it to numbers afterward.

fid = fopen('file.dat','r');
C = textscan(fid, '%f %f %f %f %s', ...
    'Delimiter',' ', 'MultipleDelimsAsOne',true, 'CollectOutput',true);
fclose(fid);

C = [num2cell(C{1}) cellfun(@str2num, C{2}, 'UniformOutput',false)]

The resulting cell-array:

C = 
    [1]    [-4436.7]    [415.18]    [-3019.7]    [1x6 double]
    [2]    [-4366.5]    [  1354]    [-3085.1]    [1x4 double]

with:

>> C{1,end}
ans =
     1     3     4     5    21    23
>> C{2,end}
ans =
     1     3     4    23


To read a single line do

% Read at most 4 elements
data1234 = fscanf (fid, '%d %f %f %f', 4);
% Read as many elements as possible, stop when no ',' is found
data5 = fscanf (fid, '%d,');

Continue reading lines until you reached the end of the file (save the data from each line before doing that). So you need some loop that continues doing this untill the file ends.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜