我如何计算每个元素的出现在一个向量在MATLAB ?
1.738视图(30天)
显示旧的评论
MathWorks支万博1manbetx持团队
2012年1月11日
编辑:
MathWorks支万博1manbetx持团队
2023年4月27日在42
我希望能够返回每个元素的计数出现在一个向量。
例如,如果我有一个向量:
25 4 10 9 4 4 x = [10]
我期望的结果
y = [2 1 3 2 1 3 3]。
接受的答案
MathWorks支万博1manbetx持团队
2020年2月27日
编辑:MathWorks支万博1manbetx持团队
2020年2月27日
MATLAB R2019a,您可以使用“groupcounts”功能来计算的次数一个元素出现在一个向量作为总结。换句话说,下面的元素输出“GC”项中相应的元素值“GR”(从原始输入向量“x”):
x = 25 4 10 9 4 4 [10];
[GC, GR] = groupcounts (x)
GC =
3
1
2
1
GR =
4
9
10
25
在“groupcounts”的更多信息,请参见下面的文档链接:
推荐- - - - - -
MATLAB R2018b,您可以使用“grouptransform”功能,如果你想计算的次数一个元素出现在向量和输出计数为每个相应元素的输入向量。例如:
x = 25 4 10 9 4 4 [10];
y = grouptransform (x, x, @numel)
y =
2
1
3
2
1
3
3
在“grouptransform”的更多信息,请参见下面的文档链接:
推荐- - - - - -
MATLAB R2018b之前,虽然没有单独的函数来计算每个元素的出现,有几个方法来计算一个向量元素:
1。逻辑索引:
下面的代码片段将所需的输出:
y = 0(大小(x));
为i = 1:长度(x)
y (i) =总和(x = = x (i));
结束
MATLAB R2016b和之后,您可以使用隐式扩张,进一步简化了代码:
y =总和(x = = ')
2。装箱:
您可以使用“嘘”和“独特”的相同的功能如下所示:
25 4 10 9 4 4 x = [10]
[a, b] =嘘(x,独特的(x))
3所示。第三方工具:
另一个解决方案,请参阅下列文件,CountMember。米”,这是由MATLAB用户做同样的从单一功能:
注意,MathWorks不担保或保证的使用或内容提交到MATLAB中央文件交换。任何问题,问题,或抱怨应该指向特约作者。
10评论
沃尔特·罗伯森
2022年4月26日
//www.tianjin-qmedu.com/help/matlab/ref/double.groupcounts.html mw_92fbcf5a - 2 ab5 - 45 - d0 ac09 - 68 c1986c269f
当你使用groupcounts那么组的顺序返回的独特(排序)
更多的答案(8)
安德烈Bobrov
2014年8月14日
[a, b] = histc (x,独特的(x));
y = (b);
5个评论
技术支持万博1manbetx
2018年5月2日
编辑:MathWorks支万博1manbetx持团队
2023年4月27日在42
你好,
如果你还遇到这个问题,请联系MathWorks支持:万博1manbetx
贾斯汀
Razvan Carbunescu
2019年5月9日
> > x = 25 4 10 9 4 4 [10];
> > grouptransform (x, x, @numel)
ans =
2
1
3
2
1
3
3
> > [GC, GR) = groupcounts (x)
GC =
3
1
2
1
GR =
4
9
10
25
7评论
雷蒙Villamangca
2018年10月25日
编辑:雷蒙Villamangca
2018年10月25日
这就是我如何做:
numOccur =总和(arrayfun (@ x (x) = = elem vec))
“elem”,在给定的向量元素搜索“矢量”。