tea*_*eef 2 matlab vector
我有一个矢量 a=[1 2 3 1 4 2 5]'
a=[1 2 3 1 4 2 5]'
我正在尝试创建一个新的向量,它将为每一行提供元素的出现次数.例如,使用此矩阵,结果将是[1 1 1 2 1 2 1]':第四个元素是2,因为这是第一次重复1.
[1 1 1 2 1 2 1]'
我能看到实现这一目标的唯一方法是创建一个零向量,其行数将是唯一元素的数量(这里:c = [0 0 0 0 0]因为我有5个元素).我还创建了一个与a相同长度的零向量d.然后,遍历向量a,向我们读取的元素的c行添加一个,并将相应的c数添加到d的当前行.
c = [0 0 0 0 0]
谁能想到更好的东西?
Dav*_*vid 9
这是一个很好的方式
C=sum(triu(bsxfun(@eq,a,a.')))
我的第一个建议就是这个,一个不太好的for循环
for
for i=1:length(a) F(i)=sum(a(1:i)==a(i)); end
归档时间:
12 年 前
查看次数:
159 次
最近记录: