2017-10-17 17 views
-2

行列を持っています(たとえばA)。これはn * 3次元を持ち、最初の列は行番号で、2番目の列は列番号で3番目の列は高さ値です。行番号と列番号に対応するゼロ行列を塗りつぶします。

私は、i * j次元のゼロ行列を持っています。今度はその高さの行(第1列)と列(第2列)に対応するゼロ行列(B)に高さ値(第3列)を入れたい。例えば

A=[5,4,108;1,3,105;3,3,98] 
B=[0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0;0 0 0 0 0 0 0] 

今I = 5及びカラム= 4ゼロにマトリクス行に108を入れて、ゼロ行列の行= 1、列= 3で105を置く等

たい

B=[0 0 105 0 0 0 0;0 0 0 0 0 0 0;0 0 98 0 0 0 0;0 0 0 0 0 0 0;0 0 0 108 0 0 0]

"for"ループなしでこの作業を行いたいと思います。

+3

これは非常に基本的です。 [documentation](https://www.mathworks.com/help/matlab/math/matrix-indexing.html)を読んでください。 –

+1

あなたの以前の質問には、かなり良い答えがあります。前の質問のいずれかで答えを受け入れていません。あなたを助けるためにボランティアしている人々に何らかの恩恵を返すために、受け入れられた最も有益な回答をアップボート/マーキングすることを検討してください。 –

答えて

0

サルダール氏は指摘したとおり、matrix indexingはドキュメントに記載されています。必要なコマンドはsub2inddocumented hereです。行、列の添え字ペアを線形インデックスに変換します。

ステップ1 A.

B(idx) = A(:,3) 

B = 

    0  0 105  0  0  0  0 
    0  0  0  0  0  0  0 
    0  0 98  0  0  0  0 
    0  0  0  0  0  0  0 
    0  0  0 108  0  0  0 
における第3列の値にAで定義される行/列ペアBにおけるそれらの指標で

idx = sub2ind(size(B), A(:,1), A(:,2)); 

ステップ2割り当て値の線形インデックスを取得します

+0

こんにちは、あなたのガイドに本当に感謝します。本当にありがとうございます。 – abbas

関連する問題