Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取文本文件,matlab_Matlab_File Io - Fatal编程技术网

读取文本文件,matlab

读取文本文件,matlab,matlab,file-io,Matlab,File Io,我正在matlab中阅读一个文本文件“mytext.text”。数据文件如下所示: 1 -4436.6910 415.1843 -3019.7497 1,3,4,5,21,23 2 -4366.4541 1353.9975 -3085.1166 1,3,4,23 我不知道Col5的长度。如何在matlab中阅读它 fid=fopen( 'mytext.text','r'); Grdata = textscan(fid, '%d %f %f %f (Col 5

我正在matlab中阅读一个文本文件“mytext.text”。数据文件如下所示:

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

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

我不知道Col5的长度。如何在matlab中阅读它

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

Grdata = textscan(fid, '%d %f %f  %f  (Col 5 what should be)% This line is 
problem%  

fclose(fid); 

任何帮助。

要阅读一行内容,请执行以下操作

% 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,');

继续读取行,直到到达文件末尾(在执行此操作之前保存每行中的数据)。因此,您需要一些循环来继续执行此操作,直到文件结束。

要读取一行,请执行以下操作

% 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,');

继续读取行,直到到达文件末尾(在执行此操作之前保存每行中的数据)。因此,您需要一些循环来继续执行此操作,直到文件结束。

一种可能是将最后一列作为字符串读取,然后将其转换为数字

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)]
生成的单元格数组:

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


一种可能是将最后一列作为字符串读取,然后将其转换为数字

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)]
生成的单元格数组:

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


逗号是文件格式不可分割的一部分吗?如果逗号可以替换为空格(如前3个数字),则可以使用
dlmread
。读取的结果数据将具有可以告诉您缺少哪些列等的维度。这就是您要查找的吗?逗号是否是文件格式的组成部分?如果逗号可以替换为空格(如前3个数字),则可以使用
dlmread
。读取的结果数据将具有可以告诉您缺少哪些列等的维度。这就是您要查找的吗?