【发布时间】:2019-12-31 03:29:16
【问题描述】:
假设我有一个变量 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 的原因
【问题讨论】:
-
假设你实际上有
Vary: [1, 2, 3, ...]你可以做var asArrays = VarY.map(n => [n]) -
@ChrisG 这个问题的答案很好,为什么要评论呢?
-
@ChrisG 我正在尝试这种方式,它似乎没有任何效果,我认为是因为它不是 [] 形式,我不知道它是否与它有关事实上 VarY 是数组中的一堆 .push() 。
-
@RodrigoZazuetaDonnadieu 您需要更具体地了解
VarY的格式,因为您编写的 (VarY = 1,2,3,...) 不是有效的 JavaScript。包括如何分配和填充 VarY 的代码(或最小等效代码)会有所帮助,或者它为什么不起作用(math.matrix(...)的结果是什么?) -
@Klaycon 好的,我会尝试在答案中添加更多细节,以便更容易阅读。
标签: javascript math.js