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

Octave中使用ezplot调用向量参数绘制含xy项隐函数失败问题

问题描述

已知newTheta为4维向量,数值如下:

-6.3702
   0.5712
   0.2067
   0.3877

使用字符串形式的隐函数指令可成功绘图:

ezplot("-6.3702 + 0.5712*x + 0.2067*y + 0.3877*x*y", [-10 10]);

但使用匿名函数调用newTheta向量时:

  • 不含xy交叉项的指令能正常运行:
    ezplot(@(x,y) newTheta(1) + newTheta(2)*x + newTheta(3)*y, [-10 10]);
    
  • 加入newTheta(4)*x*y交叉项后,指令无法生成图形,画布为空白:
    ezplot(@(x,y) newTheta(1) + newTheta(2)*x + newTheta(3)*y + newTheta(4)*x *y, [-10 10])
    
解决方法

问题根源在于Matlab的运算符规则:ezplot对二元匿名函数传入的是网格矩阵形式的x和y,此时x*y执行的是矩阵乘法,而非逐元素乘法,这会导致维度不匹配或计算结果不符合隐函数求解逻辑,最终无法生成曲线。

只需将匿名函数中的x * y替换为逐元素乘法运算符.*,修改后的代码如下:

ezplot(@(x,y) newTheta(1) + newTheta(2)*x + newTheta(3)*y + newTheta(4)*x .* y, [-10 10])

修改后即可正常绘制出与字符串形式指令一致的隐函数图形。

内容的提问来源于stack exchange,提问作者Harshit Chaurasia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:57:37