matlab - 避免为 `textscan` 中的大表中的每一列键入转换说明符

标签 matlab file-io textscan

我正在使用 textscan() 从表中读取数据。该表有 90 列,我想读取每列的值作为 float 。查看文档,我必须使用说明符 %f - 但似乎我需要使用它 90 次,所以我最终得到了这个:

c = textscan(fid,'%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
                  %f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
                  %f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f
                  %f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f%f');

这基本上有效,但我想知道是否有某种方法可以避免为我的表中的每一列键入说明符。

最佳答案

使用 repmat 根据列数构建格式字符串。

nCols = 60;
format = repmat('%f', [1 nCols]);
c = textscan(fid, format);

这足够灵活,如果你有,例如混合了几个字符串列。

nNumberCols = 58;
format = ['%s%s' repmat('%f', [1 nNumberCols])];
c = textscan(fid, format);

关于matlab - 避免为 `textscan` 中的大表中的每一列键入转换说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805685/

相关文章:

c++ - 读取 16 位 wav 文件并像 Matlab 一样对其进行归一化

matlab - bwboundaries 和轴 - Matlab

matlab - 如何使用 Matlab 视觉工具箱和步进函数绘制多个形状?

linux - 从命令行将文本附加到文件而不使用 io 重定向

c++ - 逐行读取文件到变量并循环

matlab - MATLAB 中的文本扫描 : read NULL value as NaN

algorithm - MATLAB 中假定的简单边缘检测

postgresql - HAProxy 拆分读/写 postgresql

matlab - 对 csv 文件中的列进行文本扫描,其中包含用于标记数据的列,分隔符问题