2017-10-17 75 views
-2

我有一個矩陣(例如A)它有n×3維,第一列是行號,第二列是列號,第三列是高度值。填充對應於行號和列號的零矩陣

我有一個零矩陣與i * j尺寸。現在我想把高度值(第三列)放在零矩陣(B)中,對應於該高度的行(第一列)和列(第二列)。

例如:

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] 

現在我想要把108行= 5和列= 4的零矩陣,並把105行= 1分列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]

我想做這個沒有「for」循環的工作。

+3

這是非常基本的。閱讀[文檔](https://www.mathworks.com/help/matlab/math/matrix-indexing.html) –

+1

您以前的所有問題都有相當好的答案。您之前的任何問題都沒有接受任何答案。考慮對已接受的最有幫助的答案進行upvoting /標記,以便向志願幫助你的人員返回一些幫助。 –

回答

0

由於Sardar指出matrix indexing在文檔中。您需要的具體命令是sub2inddocumented here。這將行,列下標對轉換爲線性索引。在A中所定義的行/列對

步驟1 GET線性索引

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

步驟2分配值這些索引在B到第3列的值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 
+0

你好,我非常感謝你的導遊,非常感謝你。 – abbas