使用matlab读取.rad文件(没有第一行的文本扫描)

时间:2017-11-18 17:23:55

标签: matlab textscan

我想阅读matlab我的.rad文件,就像那样:

https://www.dropbox.com/s/w057nsnvquzrc18/RAD.rad?dl=0

我尝试使用textscan并且这个:

D = textscan(fid, '%f %f %f %f %f','Delimiter',' ','headerlines', 19);

我明白了:

enter image description here

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以尝试:

  • 将数值数据读为“字符串”
  • 将“逗号”替换为“点”
  • 将cellarray转换为char数组
  • 使用函数str2num
  • 将字符串转换为数字

一个可能的Impleatino可能是:

fid=fopen('RAD.rad','r')
% Read the data as strings
x=(textscan(fid, '%s', 'headerlines', 19))

% Remove the last row (string: END OF FILE)
x{1}(end-2:end)=[];

fclose (fid)

% Define the number of variables
n_vars=5
% Get the number of data
n_data=length(x{1})
% Identify the number of rows
n_rows=n_data/n_vars
data=str2double(strrep(x{1},',','.'));
the_data=reshape(data,n_vars,n_rows)'

按照OP的评论进行编辑

我已经使用您发布的文件测试了代码。

我已更新代码以丢弃输入的最后一行(因为它是字符串“END OF FILE”)。

x变量为{11550x1 cell},因此数据存储在x{1}

代码的第二部分,生成矩阵the_data,其中包含从inout文件中读取的数据。

>> whos the_data
  Name             Size            Bytes  Class     Attributes

  the_data      2310x5             92400  double