我有一个 vector a=[1 2 3 1 4 2 5]'
我正在尝试创建一个新的 vector ,该 vector 将为每一行提供a中元素的出现次数。例如,使用此矩阵,结果将为[1 1 1 2 1 2 1]'
:第四个元素为2,因为这是第一次重复1。
我能看到的唯一方法是创建一个零 vector ,该 vector 的行数将是唯一元素的数目(此处为:c = [0 0 0 0 0]
,因为我有5个元素)。
我还创建了一个长度为a的零 vector d。然后,遍历 vector a,在要读取其元素的c行中添加一个,并在d的当前行中添加相应的c数。
谁能想到更好的东西?
最佳答案
这是一个很好的方法
C=sum(triu(bsxfun(@eq,a,a.')))
我的第一个建议是,这不是一个很好的
for
循环for i=1:length(a)
F(i)=sum(a(1:i)==a(i));
end
关于matlab - 出现次数的向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19695619/