如何在Matlab中组合两个不同大小的矩阵的值?

时间:2015-05-27 13:52:22

标签: matlab multidimensional-array

我有A =(n,m)数组和B =(n,p,q)数组。对于每个n,p,q,我想强制说当B的一个元素的值> 0时,A的相应值(对于相同的n)是0.然后,我想获得q版本A或A的大小(n,m,q)。感谢

1 个答案:

答案 0 :(得分:3)

这是你想要的吗?

result = bsxfun(@times, A, B<=0);

例如,

A =
     2     2     2     2
     3     3     3     1
     3     2     3     3

B(:,:,1) =
   -0.3906   -1.2784    0.3662   -1.2602
    0.7467   -0.3885    0.3249    2.0529
   -0.2782   -0.8268   -0.4256    0.7897
B(:,:,2) =
    0.2148   -0.9502   -0.4125    0.1795
    1.2660    0.4453    0.0328   -1.6019
    0.2740   -0.6132    0.7554    1.4524

result(:,:,1) =
     2     2     0     2
     0     3     0     0
     3     2     3     0

result(:,:,2) =
     0     2     2     0
     0     0     0     1
     0     2     0     0