我正在尝试在matlab中使用一个单元作为另一个单元的逻辑掩码(作为矩阵情况的推广)。
F.i。:
A = cellfun(@logical,{[1 0]; [0 1; 1 1]},'UniformOutput',false);
B = {[2 8]; [5 3; 2 9]};
然后我想使用A作为B的掩码,因此C = B(A)是列矩阵:
C = [2; 2; 3; 9];
不幸的是,在矩阵的情况下不能用C = B(A)来完成,所以我想知道是否有一种简单的方法可以为细胞做这个。
答案 0 :(得分:2)
如果我理解你的目标是正确的,你可以通过提供一个两个参数的匿名函数来实现这一点,以便与cellfun
一起使用:
C_cell = cellfun(@(x,y)x(y), B, A, 'UniformOutput', false);
C = cat(1,C_cell{:});