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セルに があり、それらを無視したい場合は、次を使用できます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 に答える