octave - GNU Octave 矩阵除法是如何工作的?出现意想不到的行为。

标签 octave division matrix-multiplication

在 GNU Octave 中,矩阵除法是如何工作的?

而不是做

1./[1;1]

我不小心做到了

1/[1;1]

令我惊讶的是,这会产生:

[0.5, 0.5]

横向案例:

1/[1,1]

给出预期:

error: operator /: nonconformant arguments (op1 is 1x1, op2 is 1x2)

有人可以解释一下 [0.5, 0.5] 结果吗?

最佳答案

考虑以下示例:

>> A = [5 10];

>> B = [2 2];

如果要按元素除法,请使用 A ./B 且两个元素的矩阵大小相等,即如果 A 的大小为 m*n B 的大小必须为 m*n

>> A ./B
ans =

    2.5000   5.0000

如果要逐个矩阵除法,请使用 A/B,其中元素 A 的矩阵大小为 m*n,B 为 q*n 或 m*n。/运算符尝试返回 x*y−1(即 Octave 音程格式的 x * pinv(y))。

>> A / B
ans =  3.7500

相同
>> A * pinv(B)
ans =  3.7500
OCTAVE/MATLAB 中的 pinv() 函数返回矩阵的 Moore-Penrose 伪逆矩阵,而 inv() 函数返回矩阵的逆矩阵。 如果您对使用什么感到困惑,请使用 pinv() 如果您想进一步了解What is the difference between pinv and inv?

关于octave - GNU Octave 矩阵除法是如何工作的?出现意想不到的行为。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263932/

相关文章:

r - 如何使用 R 4.1 中的 Octave?

Matlab:像数据库一样访问矩阵

c++ - 这个矩阵博览会代码是对数的吗?

python - Numpy 数组的真正除法问题

binary - 只用 NAND 门合成左移 1?

python - 向量、矩阵乘法和求和

fortran - 如何在Fortran中高效计算矩阵内积?

octave - 如何在 OSX 10.6.8 上以 Octave 打开 .m 文件

global-variables - 如何在多个 Octave 音阶脚本之间共享全局变量?

division - 除以 2 列表达式不会给出有效结果