首页 > 解决方案 > Javascript mathJS 向量乘法不能按预期工作

问题描述

我正在尝试使用 mathJS 包执行向量和矩阵运算。

我有一个向量,我想通过乘以它的转置将它变成一个矩阵。

预期的结果是

a   = [1 1 1], [1x3] vector
a^T = [1 1 1]^T, [3,1] vector

           [1, 1, 1]
 a^T * a = [1, 1, 1]
           [1, 1, 1]

出于某种原因,我在 javascript 中构造列向量时遇到问题,因为

const test1 = math.multiply(math.transpose([1, 1, 1]), [1, 1, 1]);
const test2 = math.multiply([1, 1, 1], math.transpose([1, 1, 1]));

test1 和 test2 都返回 3。我错过了什么?

标签: javascriptlinear-algebramathjs

解决方案


你错过了括号。

const test1 = math.multiply(math.transpose([[1, 1, 1]]), [[1, 1, 1]]);

的尺寸[1, 1, 1]是 1,但对于[[1, 1, 1]],它是 1x3。


推荐阅读