关于MATLAB的简单问题...
在指令窗口给出提示“继续输入1-2个参数”,如果输入 1 个参数则显示该参数,如果输入 2 个参数则显示两者平均值,如果输入 3 个参数则提示错误。
我编写了如下程序
function y=a3(a,b,c)
if nargin==1
y=a;
elseif nargin==2
y=(a+b)/2;
elseif nargin>2
y=('输入错误');
end
可是问题是运行时总是出现图片中的情况,不能得出理想结果。求高手解释一下
图片看不到……换一个 展开
你上面写的是一个函数,函数的调用不是你的截图里面那么用的,应该如a3(1,2)。另外,在matlab窗口中你可以输入一个值(包括数,向量,矩阵),或matlab表达式(命令语句或函数或m文件文件名)。单独输入一个值的话,它会把这个值赋给ans,如你以上输入。
中间加逗号表示分别输入,故上面出现两个"ans = "。但如果中间加空格,matlab则认为输入为“1空格2”组成的字符串,不是值,而去找对应的matlab表达式。找不到,所以出现错误:
你上面是想通过一个编写一个函数来达到题目要求,但matlab的调用格式是定死的f(x)。依我判断,使用函数的做法是没办法符合题意要求的,按照题意我认为代码应该是这样的:
clc;
clear;
disp('继续输入1-2个参数');
temp = 0;
in = [];
while(~ isempty(temp))
temp = input('');
in = [in temp];
end
len = length(in);
if len == 1
disp(in);
elseif len == 2
disp((in(:,1)+in(:,2))/2);
else
disp('错误!输入参数个数不正确!');
end
可以将以上代码存在matlab当前路径下的 example.m 文件中。这里不是函数,调用的时候不用参数,可以直接在命令窗口中打 example 以执行该文件中的代码,或点击编辑器上方的三角形Run按钮。
执行过程中,每次输入一个参数并回车,不输入任何值得情况下回车表示结束输入。