您好我使用以下方法填充了一个单元格数组:
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的矩阵。我哪里错了?
答案 0 :(得分:2)
A = {[1 2 4], [4 5 6]};
B = cellfun(@sum, A)
结果
B = [6 15]
B = [7 15]
答案 1 :(得分:0)
如果您的单元格中有NaN
个,并且您希望忽略它们,则可以使用nansum
:
A = {[1, 2, NaN], [3, NaN, 4, 5]; [6, NaN], [10, -3, NaN, 4]};
B = cellfun( @nansum, A )
结果
B =
3 12
6 11