【发布时间】:2015-10-12 08:34:50
【问题描述】:
我正在翻译一些 MATLAB 代码,但在理解 MATLAB 和 Python 的 numpy 之间的语法差异时遇到了一些问题。
在 MATLAB 中,我有一个 6 x 6 矩阵 A,以及 6 个浮点值 a、b、c、d、e、f。 MATLAB代码
B = A*[a;b;c;d;e;f];
产生一个 6 x 1 的矩阵 B。 所以我认为 MATLAB 运算符 '*' 必须对应于 numpy 运算符 numpy.dot()。
所以在我的 Python 代码中,我有相同的矩阵 A,以及相同的 a、b、c、d、e 和 f 值。
B = numpy.dot(A, [[a],[b],[c],[d],[e],[f]])
不会产生相同的矩阵B,也不会
B = numpy.dot(A, [a,b,c,d,e,f])
我还尝试使用 numpy 的数组函数构建 Python 矩阵和数组,结果相同。 感觉就像我在这里混合了一些基本的东西。非常感谢任何帮助。
【问题讨论】:
-
在 Matlab 中
[a;b;c;d;e;f]是列向量,你确定你的 numpy 向量是列向量而不是行向量吗? -
你有 numpy 矩阵还是数组? wiki.scipy.org/…
-
另外,如果你解释你所期望的和你得到的之间的区别,而不是让人们猜测,你会得到更好的回应!
-
在 Matlab 中,如果
A是 6 x 6,A*[a;b;c;d;e;f]应该是 6 x 1(即列向量)。你确定你有一个 1 x 6 矩阵吗? -
请在您的问题中包含我们可以运行的代码(即包含定义
A、a、b等的代码),并显示您在 Matlab 中获得的输出和蟒蛇。
标签: arrays matlab numpy matrix dot-product