关于MATLAB的简单问题...

我是一个刚刚接触此软件的人,上了两节课老师布置了如下作业。在指令窗口给出提示“继续输入1-2个参数”,如果输入1个参数则显示该参数,如果输入2个参数则显示两者平均值,如果... 我是一个刚刚接触此软件的人,上了两节课老师布置了如下作业。
在指令窗口给出提示“继续输入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

可是问题是运行时总是出现图片中的情况,不能得出理想结果。求高手解释一下
图片看不到……换一个
展开
 我来答
Explorer414
推荐于2016-09-07 · 超过19用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:27万
展开全部

你上面写的是一个函数,函数的调用不是你的截图里面那么用的,应该如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按钮。

执行过程中,每次输入一个参数并回车,不输入任何值得情况下回车表示结束输入。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式