如何根据行号和列号创建数组

Md.*_*him 1 matlab

我想根据行号和列号创建一个数组.

例如 :

row_number   Column_number    Value
  1               1            5
  3               2           10
  4               6            4
  7               5           66
Run Code Online (Sandbox Code Playgroud)

该数组应如下所示:

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
Run Code Online (Sandbox Code Playgroud)

否则它将打印为零.

Dan*_*Dan 6

这个常见问题的3种可能方法:

1.使用该sub2ind功能

A = zeros(max(row_number), max(Column_number));
idx = sub2ind(size(A),row_number, Column_number);
A(idx) = Value;
Run Code Online (Sandbox Code Playgroud)

2. 手动计算线性指数

A = zeros(max(row_number), max(Column_number));
idx = row_number(:,1) + (Column_number(:,2)-1)*size(A,1)
A(idx) = Value;
Run Code Online (Sandbox Code Playgroud)

3.使用sparse矩阵

sparse(row_number, Column_number, Value)
Run Code Online (Sandbox Code Playgroud)

full如果你想将它转换为常规矩阵,请调用它