如何使用Math.js从JavaScript中的变量创建矩阵

时间:2019-12-30 19:05:43

标签: javascript math.js

假设我有一个变量Y的向量,看起来像这样:

VarY = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

我想使用math.js将其转换为这种Vector :(以便以后我可以实际使用其他math.js函数,例如Multiply)

VarY: [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19], [20], [21], [22], [23], [24], [25], [26], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]

通过使用math.matrix([[1],[2],...,[0]])对其进行硬编码很容易做到

但是由于此向量将是可变的,因此我正在寻找一种使其动态化的方法...

我在想类似的东西:

math.matrix(VarY);

但是它不允许那样的变量。

编辑---

此处有更多详细信息:

我正在接收一些数据作为输入,这就是您在此处看到的“ XOriginal”

for(var i=0; i<26; i++){
VarY.push([XOriginal[i].splice(26,1)]); // @@@@ HERE I SAVE A COPY FOR ALL THE Y RESULTS OF THE ORIGINAL DATA
XOriginal[i].splice(26,1);
}

for ( i=0; i<26; i++) {
  VarY.push([0]);
}

最后,当我使用console.log时,变量VarY如下所示:

console.log('VarYReal: ' + VarY);

在我的控制台中,它看起来像这样:

VarYReal: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

现在,由于此变量未将其存储为数组或矩阵,因此无法使用math.multiply

1 个答案:

答案 0 :(得分:2)

AWSMobileClient具有reshape()功能。从原始js数组创建矩阵后,就可以将其更改为所需的矩阵:

math.js