题目:
自定义一个函数mymax,实现matlab函数max的功能,要求输出一个参数时,则输出最大值;若要求输出两个参数,输出最大值和最大值的位置;若要求输出其他参数,则报错。
(1)若输入向量为一个常数,则输出该数本身;
(2)若输入向量为一维(行向量或者列向量),则输出最大值;
(3)若输入向量为二维,则输出每一列的最大值。
代码:
可直接在命令行窗口输入如下:
x=input('x=');
sizex=size(x);
a=sizex(1);
b=sizex(2);
if a==1&&b==1 %常数
value=x;
position=1;
elseif (a==1&&b~=1)||(b==1&&a~=1) %一维数组(行/列向量)
value=x(1);
for i=1:length(x)
if x(i)>value
value=x(i);
position=i;
end
end
else a~=1&&b~=1 %二维数组
value=x(1,:);
position=ones(1,b);
for ii=1:b%每列
for jj=1:a%对于某一列中的每行
if x(jj,ii)>value(ii)
value(ii)=x(jj,ii);
position(ii)=jj;
end
end
end
end
a=input('选择输出形式1/2:');
if a==1
value
elseif a==2
value
position
else
error('选择输出形式错误')
end