MATLAB - 数组除法
MATLAB - 数组和矩阵除法
Section titled “MATLAB - 数组和矩阵除法”在 MATLAB 中,“除法”一词可以指代两种不同的操作:元素级除法和矩阵除法。理解它们之间的区别对于正确和高效的数值计算至关重要。本教程将阐明这两种除法类型及其对应的运算符。
第一部分:元素级除法 (./)
Section titled “第一部分:元素级除法 (./)”元素级除法,也称为数组除法,对两个数组的对应元素进行操作。它使用 ./(点斜杠) 运算符执行。两个数组必须具有相同的维度,或者其中一个必须是标量。
C = A ./ B每个元素 C(i,j) 的计算方式为 A(i,j) / B(i,j)。
示例:两个矩阵相除
Section titled “示例:两个矩阵相除”A = [8, 12, 10];B = [4, 3, 5];
% 执行元素级除法C = A ./ B
matrix1 = [9, 6; 15, 20];matrix2 = [3, 2; 5, 10];
resultMatrix = matrix1 ./ matrix2输出将是:
C = 2 4 2
resultMatrix = 3 3 3 2常见陷阱:维度不匹配
Section titled “常见陷阱:维度不匹配”尝试对两个大小不同的非标量数组使用 ./ 将导致错误。请确保您的数组大小正确,以进行此操作。
rdivide 函数
Section titled “rdivide 函数”函数 rdivide(A, B) 等同于 A ./ B。它在直接计算中较少使用,但对于将除法操作作为函数句柄传递时会很有用。
第二部分:矩阵除法 (\ 和 /)
Section titled “第二部分:矩阵除法 (\ 和 /)”矩阵除法是一个完全不同的概念,与求解线性方程组有关。它不执行逐元素除法。矩阵除法有两种类型:左除和右除。
左除 (\) 用于求解 Ax = b
Section titled “左除 (\) 用于求解 Ax = b”反斜杠运算符 \ 是 MATLAB 中最强大、最重要的运算符之一。它用于求解线性系统 A*x = b 中的未知向量或矩阵 x。
x = A \ b最佳实践:反斜杠是最佳选择!
对于求解线性系统,x = A \ b 比计算逆矩阵并相乘 (x = inv(A) * b) 显著更快,数值稳定性更高。始终优先使用反斜杠运算符。
示例:求解方程组
Section titled “示例:求解方程组”考虑以下系统: 2x₁ + 3x₂ = 8 4x₁ + 1x₂ = 6
% 设置系统 A*x = bA = [2, 3; 4, 1];b = [8; 6];
% 使用左除求解 xx = A \ bMATLAB 高效地找到了解决方案:
x = 1.0000 2.0000这意味着 x₁ = 1 且 x₂ = 2。
右除 (/) 用于求解 xA = B
Section titled “右除 (/) 用于求解 xA = B”正斜杠运算符 / 执行右矩阵除法。x = B / A 是线性系统 x*A = B 中未知数 x 的解。
x = B / A这在数学上等同于 x = (A' \ B')'。它比左除使用频率低,但在某些控制理论和信号处理上下文中至关重要。
A = [1, 2; 3, 4];B = [5, 8];
% 求解 x*A = B 中的 xx = B / A结果为:
x = -2.0000 3.5000总结:何时使用哪种除法?
Section titled “总结:何时使用哪种除法?”- 要除两个数组的对应元素:使用元素级除法
./。 - 要求解
A*x = b形式的线性方程组:使用左矩阵除法\。 - 要求解
x*A = B形式的线性方程组:使用右矩阵除法/。