关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法

MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件。

脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运行键运行就行,不存在出现诸如“未定义函数或变量”的问题;
函数文件就相对复杂一些,第一行为function,比如说像function result=encrypt(n)这样的文件,函数名与文件名是一致的,在命令窗口里输入encrypt(n),n是运行参数,按回车即运行。
注:命令窗口中若想多行输入,每另起一行时按“Shift+Enter”键即可。

问题提出

在函数文件中,很可能会出现如下图这样的问题:
在这里插入图片描述

在本问题提供解决办法前,整个过程先引入一个实例可以更好地说明这个问题:
:从键盘输入一个4位数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。

函数文件:

function result = encrypt(n)
a=fix(n/1000);
b=rem(fix(n/100),10);
c=rem(fix(n/10),10);
d=rem(n,10);
a=rem((a+7),10);
b=rem((b+7),10);
c=rem((c+7),10);
d=rem((d+7),10);
result=c*1000+d*100+a*10+b;
end

命令窗口:

>> n=input('请输入一个四位整数');
result=encrypt(n)

运行结果截图:
在这里插入图片描述
我们发现:咦?代码明明没问题呀,为什么弹出“未定义函数或变量’encrypt’”这种问题呢。

下面就说明一下这个问题的由来和解决办法:

解决办法

情况一:文件路径与系统当前路径不匹配

在这里插入图片描述
大家发现,文件路径是“F:\encrypt.m”,而MATLAB系统路径是“E:\software\MATLAB R2018awin\MATLAB\bin”,很显然文件路径与系统当前路径是不匹配的。这时,我们将我们的M文件(另存为)存储到“E:\software\MATLAB R2018awin\MATLAB\bin”路径下,这时我们惊奇地发现问题解决啦!
简单来讲,要想运行成功,前提是文件路径与系统当前路径必须一致。

情况二:函数名与文件名不一致

在这里插入图片描述
这张图就是文件名与函数名不一致的情况,这也会导致“未定义函数或变量’encrypt’”这种问题的出现,解决办法就是把文件名改成“encrypt.m”或者将函数名改为hello(n)即可。这里建议将文件名改为函数名,因为这样你会发现你省去了修改命令窗口中函数名的麻烦。
注:所有的符号必须是英文状态下的喔,不然会报错的。

情况三:命令窗口中直接写函数名

在这里插入图片描述
这种情况除非已经在函数文件中定义了函数名才会避免。否则没有函数文件直接写这条命令语句肯定是不可行的。

最后,给出排除了所有报错可能,正确得到运行结果:

在这里插入图片描述

OK!以上就是关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法的总结。希望能帮助到更多小伙伴!

大家有什么想法或者发现新的问题及解决办法别忘了在评论区告诉我哦!

欢迎评论,感谢阅读!
END

评论 22 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:程序猿惹谁了 设计师:我叫白小胖 返回首页

打赏作者

荣仔!最靓的仔!

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值