我正在尝试做一个简单的替换
我的代码如下:
grad_f = @(x) [4*x(1).^3 - 8*x(2).*x(1) + 2*x(1) -2;-4*x(1).^2 + 8*x(2)];
x = [3;3]
grad_f(x)`
它给了我以下内容: 错误:垂直尺寸不匹配(1x2 与 1x1)
在方括号(串联运算符)内,以逗号或空格分隔的元素会水平串联。这是一个不幸的选择,因为它会导致意外的错误。始终与运算符周围的间距保持一致(要么从不使用它们,要么始终在两侧使用它们)将避免大多数这些意外错误。
例如:
[a - 2] % 1x1 array
[a -2] % 1x2 array, same as [a, -2]
[a-2] % 1x1 array
这就是您的代码中发生的情况:
grad_f = @(x) [… + 2*x(1) -2; …];
^^^
可以在减号运算符两边加一个空格,或者两边都不加一个空格。