【发布时间】:2015-08-18 00:16:27
【问题描述】:
我有一个包含 200 行的文本文件,每行有 200 个值。该文件由整数组成,但它们没有被任何分隔符分隔,甚至没有空格。这是一个例子,
1111111111111111111111111111111111111111122222222222222222222222222220000111
1111111111111111111111111111100000000003123333333333333333333333333333300002
0000000000022222222222222222222222222222222211111121212222222222222222111111
文件开头可能包含一些字符串,但我只想读取这些数字。我希望能够计算每个整数的出现次数。因此,我会将所有这些数字读入一个向量或矩阵,其中向量中的每个元素都是文件中的一个数字。因此,向量必须包含 200 * 200 个元素。然后,我将计算每个元素的出现次数。
我检查了textscan等可用的文件读取方法,但我认为textscan这种格式C = textscan(fid,'%d %d');需要指定%d 200 * 200次,是这样吗,还是有办法使用@987654325 @?
我也试过importdata,但是当我尝试打印结果时,我没有得到数值。由于这一行200x1 double,它似乎只读取了第一行。这是输出,
A =
data: [200x1 double]
textdata: {6x1 cell}
colheaders: {[1x107 char]}
您能告诉我可以使用什么方法来读取上述文件吗?
【问题讨论】:
-
所以每个整数都是一个单独的数字?为什么不作为字符串读入,然后循环
for j= 1:numel(a_line_of_integers), x(j) = str2num(a_line_of_integers(j); end。对你读入的每一行重复一遍。顺便指出,如果你切换到R,x=as.numeric(strsplit(a_line_of_Integers))会更快更容易 -
没错,我只是想实现它。非常感谢您的帮助。
-
如果您愿意,请将我的 cmets 复制到答案中。
-
@CarlWitthoft 如果我发布它,它看起来是我的答案,但它是你的。我强烈建议您将其发布为答案。很有帮助。
-
好的,...只是想“捐赠”您可以获得的积分:-)
标签: matlab matrix vector integer