我正在使用 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/