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

Gee*_*cid 9 file-io matlab textscan

我正在使用表格读取数据textscan().该表有90列,我想将每列的值作为浮点数读取.看看文档,我必须使用说明符%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');
Run Code Online (Sandbox Code Playgroud)

这基本上有用,但我想知道是否有一些方法可以避免为我的表中的每一列输入说明符.

And*_*nke 12

用于repmat根据列数构建格式字符串.

nCols = 60;
format = repmat('%f', [1 nCols]);
c = textscan(fid, format);
Run Code Online (Sandbox Code Playgroud)

这足够灵活,如果你有几个字符串列混入使用.

nNumberCols = 58;
format = ['%s%s' repmat('%f', [1 nNumberCols])];
c = textscan(fid, format);
Run Code Online (Sandbox Code Playgroud)