0

嗨,我使用以下方法填充了一个单元格数组:

D(i) = {dist};

D = reshape(D, w, h)

所以如果我有:

 pix1 = D{1,1};   
 pix2 = D{2,2};

我明白了

pix1 = 
    1 2 3

pix2 =
    4 5 6

我想要做的是将每个像素中的所有元素相加,然后将这些结果形成一个矩阵,即

sum(pix1) = 6
sum(pix2) = 15

matrix = 
    6 15

在这种情况下,矩阵是一个 1X2 矩阵(我的要大得多)。

我正在尝试使用:

field = cellfun(@(dist) sum(dist(:)), D,'UniformOutput', false);

但这只是给了我一个充满 NaN 的矩阵。我哪里错了?

4

2 回答 2

2
A = {[1 2 4], [4 5 6]};
B = cellfun(@sum, A)

结果是

B = [6 15]

B = [7 15]
于 2012-06-21T22:13:16.693 回答
0

如果您NaN的单元格中有 s 并且您希望忽略它们,您可以使用nansum

A = {[1, 2, NaN], [3, NaN, 4, 5]; [6, NaN], [10, -3, NaN, 4]};
B = cellfun( @nansum, A )

结果与

B =

    3    12
    6    11
于 2013-04-24T05:59:04.603 回答