Matlab中的二维逻辑矩阵

时间:2017-05-05 19:23:10

标签: matlab matrix logic

我有'M'个用户,每个案例都有两个不同的N1和N2特征值。 IE:A是Mx1向量,用于指定每个用户的性别('F','M'}(N1 = 2),B是Mx1向量,用于指定用户居住的大陆{'ASIA','AFRICA' ,'美国'等}(N2 = 6)。 我想创建一个N1xN2(2 * 6)矩阵,它给出了每个性别和大陆组合的用户数量,而不使用for循环。 我试过这段代码:

bsxfun(@eq,A,unique(A)')'*bsxfun(@eq,B,unique(B)')

但这不是我需要的。

提前致谢。

PS:我不需要值的笛卡尔积,我需要一个矩阵来计算每个组合的元素。

1 个答案:

答案 0 :(得分:0)

您需要accumarray

[~,~,ia] = unique(A);
[~,~,ib] = unique(B);
M = accumarray([ia, ib], 1);