gpt4 book ai didi

matlab - 如何计算 Matlab 中 2 个数组(一个是另一个数组的一部分)中值的出现次数?

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:24 25 4
gpt4 key购买 nike

假设我有一个数组 A = [1,2,2,3,4,5,5,5,7]

这是另一个更大数组的一部分 B = [1,2,2,2,2,3,3,3,4,5,5,5,6,7]

我想做的是统计每个元素在A中出现的次数,除以在B中出现的次数,希望能制表使用 tabulate 函数的结果。

我希望我的最终表格结果如下所示

Element - Occurrence - %age of occurrence
1 - 1 - 100%
2 - 2 - 50%
3 - 1 - 33.3%
4 - 1 - 100%
5 - 3 - 100%
6 - 0 - 0%
7 - 1 - 100%

我相信这将涉及一个 for 循环,我在其中创建一个新数组 C 以便它标识 A 中的哪些元素出现在 B 中每次它确实将 1 添加到其各自的值,如果它不存在于 B 中,则返回 0。我不知道如何进行,如果能提供一些指导,我们将不胜感激!

最佳答案

这是 hist 的一个很好的用例,它通常非常快。您可以将 A 中的数据分箱到从 min(A)max(A) 的直方图分箱,并应用相同的分箱来分配B 中的数据。然后,您只需将两个数组中的出现次数相除即可获得百分比值。

例如:

[nA, uA] = hist(A, min(A):max(A));
nB = hist(B, uA);
result = 100*(nA./nB)'

编辑:A 的元素出现次数由 nA 给出。

关于matlab - 如何计算 Matlab 中 2 个数组(一个是另一个数组的一部分)中值的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33694947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com