【发布时间】:2012-02-04 08:06:55
【问题描述】:
我有一个大小为 MxNxK 的大型 D 矩阵。给定大小为 MxN 的二进制掩码B,我想将矩阵D 拆分为两个子矩阵:D0 和D1,这样矩阵D0 的值就是矩阵D与二进制掩码中的0's 关联。这同样适用于D1,但在二进制掩码中使用1's。
目前,我正在通过使用循环来解决这个问题,但我想知道是否有更有效的方法来解决这个问题?
mat_zeros = [];
mat_ones = [];
for m=1:M
for n=1:N
matval = matrixbig(m,n,:);
matval = matval(:)'; % mapping matval to a K-dimensional vector
if (binmask(m,n) == 1)
mat_ones = [mat_ones; matval];
elseif (binmask(m,n) == 0)
mat_zeros = [mat_zeros; matval];
end
end
end
欢迎所有建议 ;-)
【问题讨论】:
-
看看这个SO question
标签: matlab matrix indexing partitioning