提问人:panos stefanou 提问时间:11/17/2023 最后编辑:pmacfarlanepanos stefanou 更新时间:11/22/2023 访问量:32
垂直尺寸不匹配(1x2 与 1x1)
vertical dimensions mismatch (1x2 vs 1x1)
问:
我正在尝试进行简单的替换
我的代码如下:
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)
答:
0赞
Cris Luengo
11/22/2023
#1
在方括号(连接运算符)内,用逗号或空格分隔的元素水平连接。这是一个不幸的选择,因为它会导致意外错误。始终与运算符周围的间距保持一致(要么从不使用它们,要么总是在两侧使用它们)将避免大多数这些意外错误。
例如:
[a - 2] % 1x1 array
[a -2] % 1x2 array, same as [a, -2]
[a-2] % 1x1 array
这是您的代码中发生的情况:
grad_f = @(x) [… + 2*x(1) -2; …];
^^^
要么在减号运算符的两侧放置一个空格,要么在两边都放置一个空格。
评论