【问题标题】:JavaScript dynamically expand/contract matrix - how to implement this?JavaScript 动态扩展/收缩矩阵 - 如何实现?
【发布时间】:2016-10-17 16:32:45
【问题描述】:

我需要在 JavaScript 中创建一个矩阵来保存一些数据。当我决定追加一个新矩阵时,它应该能够动态扩展和收缩,而不会丢失数据(除非删除了包含数据的行,那么该数据就会丢失)。

假设我有一个 4x3 矩阵。

[][][][]
[][][][]
[][][][]

然后我想添加一个 6x5 矩阵。现在看起来像这样……

[][][][] [][][][][][]
[][][][] [][][][][][]
[][][][] [][][][][][]
         [][][][][][]
         [][][][][][]

但是,我也想填充这些空白,而不重置原始数据单元格。像这样:

[][][][] [][][][][][]
[][][][] [][][][][][]
[][][][] [][][][][][]
[][][][] [][][][][][]
[][][][] [][][][][][]

到目前为止,我已经开始使用:this.mainMatrix = Array(x).fill(Array(y));

现在我该怎么做?

【问题讨论】:

  • 您必须注意数组是引用类型这一事实,您可能很容易最终得到一个数组数组都引用单个数组。

标签: javascript arrays matrix multidimensional-array


【解决方案1】:

你为什么不使用像math.js 这样的矩阵(密集和稀疏)库?

var matrixA = math.matrix([
  [1, 2],
  [3, 4]
]); // Matrix
var matrixB = math.matrix([
  [5, 6],
  [7, 8]
]); // Matrix

var matrixC = math.add(matrixA, matrixB);

console.log(matrixA, matrixB, matrixC)
<script src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/3.2.1/math.min.js"></script>

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 2014-07-19
    • 2021-12-06
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2018-09-05
    • 2017-08-02
    • 1970-01-01
    相关资源
    最近更新 更多