You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:Matlab R2014b中surf与mesh函数调用报错无法正常工作

解决Matlab R2014b中surf/mesh函数“输入参数不足”的问题

这种情况我之前碰到过好几次,大概率是命名冲突搞的鬼!别着急,咱们一步步排查解决:

  • 先检查是否存在同名自定义文件
    你可能无意中在当前工作目录或者Matlab搜索路径里,创建了名为surf.mmesh.m的脚本/函数文件。这会导致Matlab优先调用你的自定义文件,而非内置的绘图函数,从而触发参数不足的错误。
    在命令行输入这两行命令验证:

    dir surf.m
    dir mesh.m
    

    如果输出了文件信息,说明确实存在冲突。把这些文件重命名(比如改成my_surf_demo.m)或者移到Matlab搜索路径以外的文件夹即可。

  • 再排查变量名冲突
    有没有不小心把surfmesh当成变量名用过?比如执行过surf = 5;这种操作?
    输入命令检查:

    whos surf
    

    如果显示存在这个变量,输入clear surf清除它,再重新调用函数试试。

  • 最后确认内置函数路径
    输入which surf,正常情况下应该返回Matlab安装目录下的内置文件路径,类似这样:

    C:\Program Files\MATLAB\R2014b\toolbox\matlab\graph3d\surf.m
    

    如果返回的是你工作目录里的文件,说明路径优先级有问题,调整文件位置或者搜索路径即可。

搞定这些之后,再运行你测试的官方示例代码:

[X,Y] = meshgrid(1:0.5:10,1:20); 
Z = sin(X) + cos(Y); 
surf(X,Y,Z);

应该就能正常生成曲面图了。毕竟plot3能正常运行,说明你的绘图工具箱本身没问题,就是这两个函数被“抢了位置”而已~

内容的提问来源于stack exchange,提问作者Sebastian Garrido

火山引擎 最新活动