0

私はMatlabを使用しています。値ごとのピクセル数を格納する 3d RGB ヒストグラムがあり(r, g, b)ます。3D マトリックスは非常にまばらです。Matlab で疎な 3d 行列を処理する方法はありますか? 私は義務付けられます。

4

1 に答える 1

0

あなたの最初の質問はあまり明確ではなかったので、より理解しやすく、検索しやすく、役立つように再構成しました。現在、あなたの質問に回答して、未回答リストから削除しています。

知られているように、Matlab は 3D 行列を直接処理しません。回避策は、スパース行列のセル配列を使用することです。

(1, 1, 1)要素とのみを含むスパース行列を作成するとします。(1, 3, 50)と としA(1, 1, 1) = 1ますA(1, 3, 10) = 54。次のことができます。

mySp{1}  = sparse(3, 3);
mySp{10} = sparse(3, 3);

mySp{1}(1, 1) = 3;
mySp{10}(1, 3) = 54;

この上、

>> mySp

mySp = 

    [3x3 double]    []    []    []    []    []    []    []    []    [3x3 double]

ご覧のとおり、要素mySpの配列です。101 番目と 10 番目の要素はスパース行列で、その他は空です。空でない 1 番目と 10 番目のスパース行列は、次のように復元できます。

temp1 = mySp{1};
temp2 = mySp{10};

戻る

>> temp1

temp1 =

   (1,1)        3

temp2 =

   (1,3)       54
于 2016-11-08T08:03:44.760 に答える