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

时间:2016-04-25 12:15:13

标签: matlab

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

例如:

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

否则会打印零。

1 个答案:

答案 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