【问题标题】:How to create an array according to row and column number [duplicate]如何根据行号和列号创建数组[重复]
【发布时间】:2016-04-25 12:15:12
【问题描述】:

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

例如:

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

否则将打印零。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    解决这个常见问题的 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

    【讨论】:

      猜你喜欢
      • 2020-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-17
      • 2022-09-07
      • 1970-01-01
      • 2020-10-23
      相关资源
      最近更新 更多