kri*_*mas 2 matlab tab-delimited-text readfile
我想使用 MATLAB 从制表符分隔的文本文件中读取一系列单元格。这个单元格范围应该是数字,但最近提供这些数字的软件在数字太大时用“MAX”一词代替了数字应在的位置。这意味着我现在查看的单元格范围包含一些表示 MAX 的字符串,其余的都是数值。
到目前为止,我一直在使用 dlmread 来读取这个范围的数值,并且运行良好。当存在 MAX 时,dlmread 不起作用。
这是我用来读取数据的代码:
data = dlmread(filename, '\t', 20, 5);
Run Code Online (Sandbox Code Playgroud)
这是错误:
Mismatch between file and format string.
Trouble reading number from file (row 152u, field 31u) ==> MAX
MAX MAX 552.397949 33.415199 7.425600 3.379600
6.6422090 \n
Run Code Online (Sandbox Code Playgroud)
有没有办法读取此文件而不将其转换为 .csv?我想读入该文件并将显示 MAX 的单元格更改为 1500 这样的数字。
你可以试试textscan
C = textscan(fid, '%f', 'delimiter', '\t', 'treatAsEmpty', {'MAX'},'EmptyValue', 1500);
Run Code Online (Sandbox Code Playgroud)
这将返回一个 1 × N 元胞向量,其中 N 是文件中值的数量。要将其转换为矩阵,您可以使用reshape
C = reshape(cell2mat(C),[numOfRows numOfCols]);
Run Code Online (Sandbox Code Playgroud)