3

次のように、マトリックスにゼロの行と列を追加する方法に興味があります。

              1 0 2 0 3
1 2 3         0 0 0 0 0
2 3 4  =>     2 0 3 0 4
5 4 3         0 0 0 0 0
              5 0 4 0 3

大きな行列を扱う場合、行列をたどってゼロを追加するには時間がかかるため、実際にはこれを効率的に行う方法に興味があります。

アップデート:

どうもありがとうございました。

今、私はゼロをそれらの隣人の合計に置き換えようとしています:

              1 0 2 0 3     1 3 2 5 3
1 2 3         0 0 0 0 0     3 8 5 12... and so on
2 3 4  =>     2 0 3 0 4 =>
5 4 3         0 0 0 0 0
              5 0 4 0 3

ご覧のとおり、要素の 8 つの隣接要素すべてを考慮していますが、再び for を使用して行列をウォークすると、かなり遅くなります。より速い方法はありますか?

4

2 に答える 2

3

あなたの小さな行列を と呼びましょうm1。それで:

m2 = zeros(5)

m2(1:2:end,1:2:end) = m1(:,:)

明らかに、これはあなたの例に組み込まれています。一般化するためにあなたに任せます。

于 2012-04-19T08:58:52.087 に答える