2016-04-25 77 views
1

我想根據行號和列號創建一個數組。如何根據行號和列號創建陣列

例如:

row_number Column_number Value 
    1    1   5 
    3    2   10 
    4    6   4 
    7    5   66 

數組應該是這樣的:

A= 


5 0 0 0 0 0 
0 0 0 0 0 0 
0 10 0 0 0 0 
0 0 0 0 0 4 
0 0 0 0 0 0 
0 0 0 0 0 0 
0 0 0 0 66 0 

否則將打印爲零。

回答

6

3種可能的方法,這個經常被問到的問題:

1.使用sub2ind功能

A = zeros(max(row_number), max(Column_number)); 
idx = sub2ind(size(A),row_number, Column_number); 
A(idx) = Value; 

2.手動計算linear indices

A = zeros(max(row_number), max(Column_number)); 
idx = row_number(:,1) + (Column_number(:,2)-1)*size(A,1) 
A(idx) = Value; 

3。使用sparse矩陣

sparse(row_number, Column_number, Value) 

然後調用該full如果你想將它轉換爲常規基質