开发者

Reading text file, matlab

开发者 https://www.devze.com 2023-04-08 10:57 出处:网络
I am reading a text file \'mytext.text\' in matlab. Data file looks like: 1-4436.6910415.1843-3019.74971,3,4,5,21,23

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

精彩评论

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

关注公众号