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

如何解决MATLAB/Octave绘制指定分式函数时维度不匹配报错问题

问题原因

你出现维度不匹配报错的核心原因有两个:

  • 没有将两个自变量y和phi转换为网格矩阵,直接对两个一维行向量做跨元素的乘法运算不符合MATLAB/Octave的矩阵运算规则
  • 逐元素的乘法、除法运算需要使用带点的运算符.*、./,默认的*、/是矩阵乘法和矩阵除法,不符合标量函数的逐元素计算要求

解决代码

% 定义自变量范围
y = -16:0.5:16; 
phi = linspace(0,4*pi,65);
% 生成二维网格矩阵,方便逐元素计算二元函数
[Y, PHI] = meshgrid(y, phi);
% 计算分子分母,所有乘除都用逐元素运算符
a = (pi - 2*PHI).*(1 + 2*Y.^2) + sin(2*PHI) - 8*Y.*cos(PHI);
b = (pi - 2*PHI) + sin(2*PHI) - 4*Y.*cos(PHI);
% 逐元素做除法得到函数值
c = a ./ b;

% 绘图示例:三维曲面
figure;
surf(Y, PHI, c);
xlabel('y');
ylabel('phi');
zlabel('n');
shading interp;

额外说明

  • 如果需要固定其中一个变量,把函数作为另一个变量的一元函数绘制,只需要固定某一个变量为标量,不需要调用meshgrid,只要保证所有逐元素运算都使用点运算符即可
  • 计算时注意分母b可能出现为0的奇点,绘图时MATLAB/Octave会自动把这些位置显示为NaN,不会影响整体图像效果

内容的提问来源于stack exchange,提问作者Moone Lenno Presto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:57:02