1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法

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

时间:2024-07-07 07:36:58

相关推荐

关于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 Rawin\MATLAB\bin”,很显然文件路径与系统当前路径是不匹配的。这时,我们将我们的M文件(另存为)存储到“E:\software\MATLAB Rawin\MATLAB\bin”路径下,这时我们惊奇地发现问题解决啦!

简单来讲,要想运行成功,前提是文件路径与系统当前路径必须一致。

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

这张图就是文件名与函数名不一致的情况,这也会导致“未定义函数或变量’encrypt’”这种问题的出现,解决办法就是把文件名改成“encrypt.m”或者将函数名改为hello(n)即可。这里建议将文件名改为函数名,因为这样你会发现你省去了修改命令窗口中函数名的麻烦。

注:所有的符号必须是英文状态下的喔,不然会报错的。

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

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

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

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

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

欢迎评论,感谢阅读!

END

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。