我想根据行号和列号创建一个数组。
例如:
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
否则会打印零。
答案 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