matlab出现Too many input arguments错误

我定义了一个上近似的代码,保存为,upper.m但是总是出现Toomanyinputarguments的错误functionT=A(a,b)result=ind(a);T... 我定义了一个上近似的代码,保存为,upper.m 但是总是出现Too many input arguments的错误
function T=A(a,b)
result=ind(a);
T=[];

[g,h]=size(result);
for k=1:g
w=result(k,:);
w(w==0)=[];
if(intersect(w,b)~=0)
T=[T w];
end
end
T(T==0)=[];

测试输出:

a =

0 1 2 1 3
1 2 0 0 0
1 2 2 1 3
1 1 2 1 3
2 1 2 1 3
2 1 2 1 3
1 1 2 1 3
b=[1 3 4 6]

c=upper(a,b)
展开
 我来答
付先武
推荐于2018-02-27 · TA获得超过889个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:190万
展开全部
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是内建函数,其优先级又比用户当前目录高,所以在此是调用的系统的函数.
i2nd
2010-05-27 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2016
采纳率:0%
帮助的人:1432万
展开全部
如果你在一个文件中单独定义一个函数,应该把函数名和文件名用同样的名字,所以要写成function T=upper(a,b),而你的函数名是A所以调用了matlab本身的upper函数,只接受一个参数,所以upper(a,b)是错误的。
建议不要把自己定义的函数起和matlab已有函数相同的名字,所以改成 myupper.m和function T=myupper(a,b)较好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bestery
2010-05-27 · TA获得超过1378个赞
知道小有建树答主
回答量:1253
采纳率:100%
帮助的人:1179万
展开全部
a 没用方括号括起来么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式