1.定义一个函数,建议最好函数名和文件名用同样的名字,比如你写的函数名是A,而保存文件名却保存为了upper,所以最好保存成A.m;
2.要注意MATLAB识别你保存文件的名字,所以如果你保存成upper.m的话,调用只能用upper,而不能用A了;
3.在保存函数的过程中注意不要和MATLAB自带的函数名相同,如果相同了,在当前目录下会先调用你写的函数,因为MATLAB先要在用户的当前目录搜索有没有这个函数,如果有就直接调用,没有就又在其它的目录比如toolbox中找,你保存成upper后,与MATLAB自带的将小写改成大写的upper函数冲突了,MATLAB本身的upper函数,只接受一个参数,那在此为什么没有先调用你的函数呢???我们可以从which upper命令中看到返回结果是built-in (D:\MATLABR2010a\toolbox\matlab\strfun\upper),也就是说upper是内建函数,其优先级又比用户当前目录高,所以在此是调用的系统的函数.
如果你在一个文件中单独定义一个函数,应该把函数名和文件名用同样的名字,所以要写成function T=upper(a,b),而你的函数名是A所以调用了matlab本身的upper函数,只接受一个参数,所以upper(a,b)是错误的。
建议不要把自己定义的函数起和matlab已有函数相同的名字,所以改成 myupper.m和function T=myupper(a,b)较好。
a 没用方括号括起来么