【发布时间】:2020-08-08 15:07:27
【问题描述】:
我正在创建一个 Matlab 程序来处理包含有限整数(不必是连续的)的数据数组。假设我的数据数组是A,我需要先找到A的唯一值,形成一个向量B,我必须计算A中每个唯一值的出现次数,这给出另一个向量C。最后,我需要一个向量 E,它与 A 的长度相同,但 E 的第 i 个元素的值计算为 E(i) = C(k) 和 k = A(i)
我有如下代码来创建 B 和 C:
A=[5 5 1 1 3 1 3 11 9 6 -2];
[B, ia, ic]=unique(A);
C = accumarray(ic,1);
A 可能是一个大向量,A 的元素可能非常不同,范围很广,我想知道是否有任何向量化方法来生成数组 E 而不是下面的循环方法
E = zeros(size(A));
for n=1:length(E)
k=find(B==A(n));
E(n) = C(k);
end
【问题讨论】:
标签: matlab indexing vectorization