我有一个.txt文件(名为B.txt),由一个整数列表(每个21位数字)组成,分为两列,如下所示(实际上该文件包含更多行):
116374117927631468606 101765416973555767821
112188647432305746617 107727150903234299458
116719211656774388392 100432456209427807893
117421021456205115327 101096322838605097368
我想在Matlab中导入这个文件,格式允许我计算第二列中每个整数重复的次数。
我现在正在做的是
A=importdata('B.txt');
A_2=A(:,2);
a = unique(A_2);
out = [a,histc(A_2(:),a)];
问题:有没有更好的方法来执行此任务?例如,有没有办法从1开始“重新标记”所有内容?
特别是,我想知道是否通过将这些巨大的整数作为数字导入而失去了精确度。
答案 0 :(得分:2)
是的,你精确度不高。试试112188647432305746617==112188647432305746616
。
我建议您将数据导入为文本而不是数字,并使用VPA。使用相同的例子:
a=vpa('112188647432305746617');
b=vpa('112188647432305746616');
a==b