关于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
关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法相关推荐
- matlab运行SSEQ时报错:未定义函数或变量‘svmpredict’
很久没写了...过个年感觉啥也不会了..马上开题答辩和专业实践答辩,祝福我吧-- 今天跑图像去雾指标,运行SSEQ时报错了,如下所示: 看了下对应文件,的确直接用了这个函数,那肯定是没有正确引用文件喽 ...
- MATLAB:出现 “ 未定义函数或变量 ”
出现的报错页面: 查找了许多解决方法,主要是关于MATLAB中M文件如何解决"未定义函数或变量"的若干办法 文中详细介绍了报错可能的三种原因. 不过在三种方式均尝试后依旧发现无法解 ...
- 大无语!!记录一下mac dpabi 安装报错:未定义函数或变量 ‘dpabi‘。Chrome浏览器!!!
先说结论,把dpabi50docker文件添加到Matlab路径下报错,未定义函数或变量 'dpabi'.原因是..docker不等于 dpabi,下错文件了. 真正的文件名是DPABI_V5.0_2 ...
- matlab中出现未定义函数或变量如何解决?
A=[0 -1 4;9 -14 25;-34 49 64]; B=zeros(3,3); for i=1:3 for j=1:3 B(i,j)=A(i,j); end end disp(B) 复制j矩 ...
- MATLAB中未定义函数或变量”的问题
MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件. 脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运 ...
- MATLAB未定义函数或变量‘polyadd‘的解决办法
当进行多项式的加减运算时,提示未定义函数或变量'polyadd',这是因为MATLAB的函数库中没有这个函数,我们自己编写函数放进MATLAB的安装路径下即可. 解决办法: MATLAB新建函数,然后 ...
- 疑难杂症篇(二)--MATLAB中“未定义函数或变量 ‘bd_asymp‘”问题的解决方案
使用MATLAB绘制开环对数幅频渐近特性曲线过程中,出现"未定义函数或变量 'bd_asymp'"的问题,下面给出一个参考的解决方案. 展示出现的问题 问题的解决方案 a.在命令行 ...
- noise函数 matlab,matlab未定义函数或变量 'add_noise1'怎么解决
具体报错是"未定义函数或变量H"? 可能是你调用Creat_G( H )的代码里没有先定义H matlab中变量未定义:在命令窗口中输入的时候要调用函数QPSK_evm(s),其中 ...
- 【已解决】MATLAB未定义函数或变量 ‘wavread‘,以及audioread,audiowrite,wavwrite
报错 MATLAB未定义函数或变量 'wavread'. 原因 wavread在当前Matlab版本中废弃,需要改成audioread,同理wavwrite也需要改为audiowrite. 注意 在更 ...
最新文章
- 我用Python爬取英雄联盟的皮肤,隔壁家的小弟弟都馋哭了
- fortran的gui开发 python_python和fortran的接口
- 贪心 - Dota2 参议院
- c# u盘使用记录_C# 系统应用之通过注册表获取USB使用记录(一)
- mysql.sock 111,错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’连接到本地MySQL服务器(111)...
- React Native官方DEMO
- jdbc连接mysql登录注册_jdbc+mysql+servlet+jsp实现用户注册与登录功能
- 解决shell脚本“syntax error near unexpected token `fi‘”的问题。
- 【python笔记】 for循环和while循环,break和continue语句
- C++ 默认构造函数的构建
- android markdown编辑器,安卓版好用的Markdown编辑器
- excel文件修复工具_OFFICE文件图标空白的修复方法(亲测有效)
- SEO和SEM的区别
- OGRE: Ogre第一个程序
- 2023年湖北武汉中级工程师怎么申请?申报渠道有哪些?启程别
- 下一代云原生应用交付会怎样发展?KubeVela帮大忙。
- 踩坑 微信小程序开发mpvue使用iconfont,顺便解决偶现图标显示不正确
- Java 面向对象学习一周小结
- Spring MVC AOP切面失效原因与处理
- 全面认识海思SDK及嵌入式层开发(4)
热门文章
- 收了!质量五大工具和七大方法应用,都总结齐了!
- 0426 - 大家都喜欢独当一面
- C++ CodeWar KATA4:Human readable duration format
- ENVI下的秸秆焚烧实时遥感监测方案及实现
- MATLAB曲线拟合灵敏度,用Matlab曲线拟合工具箱curve fitting曲线拟合,原来是这样的...
- Python-学习笔记
- java实习生入职第一天,你该干点什么???
- Kingfisher源码阅读(一)
- 用python画星空图教程水粉_水粉画教程:唯美星空水粉画步骤图
- nexus 5x刷机过程