Matlab - 如何使用textscan读取具有大量整数列的文件

时间:2012-10-09 11:41:36

标签: matlab file-io csv

我有一个文件,其中包含以下格式的数据:

filename.jpg,132,234,234,345,4555,23333,344,...,333

我已经...标记了我有一个很长的整数序列这一事实。在每一行我总共有132个整数。

我想读取带有132列的矩阵中的数字以及输入文件中的行数。如何使用textscan函数读取此数据?我该如何指定这种格式?我还想将第一列文件名读入单元格数组。

对于单元格数组,我使用了以下语法:

fid = fopen(inputPath);
buffer = textscan(fid, '%s%*[^\n]', 'Delimiter', ',');

close(fid);

1 个答案:

答案 0 :(得分:2)

您可以使用textscan跟随您的第一次来电csvread

A = csvread('data.txt', 0, 1);

最后两个参数指定数据开始的行和列。您的单元格将包含第一列中的字符串,A包含带有数据的矩阵。

否则,如果您真的必须使用textscan,请创建格式字符串:

fid = fopen('data.txt', 'r');
% crate a string with as many %f as you need
fmt = ['%s' repmat('%f', 1, 132)];
buffer = textscan(fid, fmt, 'Delimiter', ',');
names = buffer{1};
A = [buffer{2:end}];
fclose(fid);