matlab function报错:too many input arguments
使用matlab function的时候,我定义了一个函数ladder,调用的时候,出现报错:
![81a83ce6e3de4313e475033b8cf39fad.png](https://i-blog.csdnimg.cn/blog_migrate/d0b1702371ce7efa0a02197c08b1da6c.png)
网上的大牛说,产生这个错误的原因是因为函数定义名称和系统定义函数冲突。但是在我的这个案例中,ladder函数并不是系统定义函数。
![05bc7a4202d11f44b80c5fa6723439e0.png](https://i-blog.csdnimg.cn/blog_migrate/7a8337a1b5c4695844abaae2bf566348.png)
可以看到,这里系统是能将我编译的函数识别成ladder的,因为我的ladder函数存储在一个ladder.m文件当中。
但是,如果我把ladder函数所在的m文件改名成其他,比如ladder1.m,那么我们再用help看一下
![39965e9f8560698ca2ede64418ea31eb.png](https://i-blog.csdnimg.cn/blog_migrate/e032ec1543c5462e99f4dd624379cb3d.png)
会发现ladder其实是一个class。
所以,当你的函数名和matlab系统定义的函数或者class之类的冲突的时候,你也会遇到“too many input arguments”的报错。
最好的防止此类错误的方式,就是将函数命名为具有个人标签的函数,比如ladder可以命名为“xxx_ladder”(xxx)为个人姓名。