1

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

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

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

我想读取矩阵中的数字,矩阵中的132列和行数与输入文件中的行数一样多。如何使用textscan函数读取这些数据?我应该如何指定这种格式?我还想将文件名的第一列读入一个单元格数组。

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

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

close(fid);
4

1 回答 1

2

您可以textscan使用 acsvread代替您的第一个电话:

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);
于 2012-10-09T11:58:59.313 回答