You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行自定义梯度函数代码时出现vertical dimensions mismatch (1x2 vs 1x1)错误

解决Octave/Matlab中垂直维度不匹配错误(1x2 vs 1x1)

问题重现

运行以下代码时触发维度不匹配错误:

error: 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)`

错误原因

  1. 语法错误:最后一行grad_f(x)末尾多了一个多余的反引号`,干扰了解释器对代码的正确解析,进而导致维度判断异常。
  2. 返回值维度解析异常:匿名函数grad_f定义的是2x1列向量,但语法错误让解释器错误识别返回值维度,最终触发不匹配提示。

解决方案

1. 修正语法错误

移除grad_f(x)末尾的多余反引号,确保代码语法合规。

2. 完整修正代码

以下是可正常运行的代码:

% 定义梯度匿名函数,返回2x1列向量
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];
% 调用函数并输出结果
output = grad_f(x);
disp(output);

运行结果

执行后会输出正确的2x1列向量:

70
   -12

额外提示

  • 在Octave/Matlab中,分号;分隔元素生成列向量,逗号,分隔生成行向量,需根据需求选择合适的分隔符。
  • 编写代码后务必检查多余符号,这类小错误常导致难以排查的维度或语法问题。

内容的提问来源于stack exchange,提问作者panos stefanou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 02:33:26