gpt4 book ai didi

matlab - 在 MATLAB 中按行向量右除

转载 作者:行者123 更新时间:2023-12-04 20:48:37 28 4
gpt4 key购买 nike

我正在将名为 A 的 20x60 矩阵除以名为 B 的 1x60 行向量。所以 C = A/B,其中 C 是一个 20x1 向量。

MATLAB 在 A/B 中做什么?我在 mrdivide 中找到了答案

If A is a rectangular m-by-n matrix with m ~= n, and B is a matrix with n columns, then x = B/A returns a least-squares solution of the system of equations x*A = B.

但是当我尝试 C*BB*C 时,我得到了尺寸错误,为什么?

最佳答案

如您所说,输入命令 C = A/B 您正在求解方程 C * B = A 中的 C。如果您有以下系统(为简单起见,2 个而不是 20,3 个而不是 60)。

对于第一个问题,Matlab 看问题并尝试解决它。在某些情况下,系统不会有解决方案。在这种情况下,Matlab 会计算其中一个组合,求解最多的方程(如 mathworks 页面上的示例所示)。

关于为什么会出现尺寸错误的第二个问题:

b = [b1 b2 b3]

A = [a11 a12 a13]
[a21 a22 a23]

C = [c1]
[c2]

MatLab 将处理您尝试对向量执行的操作,因为它会自动将 C*B 识别为外积。

矩阵的 B*C 的乘积将不起作用,因为 matlab 自动化不会考虑外积的可能性。如果您想执行微积分,则必须使用克罗内克积:

kron(C,B)

此示例的输出:

=[c1*b1 c1*b2 c1*b3]
[c2*b1 c2*b2 c2*b3]

希望对你有帮助

干杯,巴勃罗

关于matlab - 在 MATLAB 中按行向量右除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52515081/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com