【发布时间】:2014-12-01 20:27:28
【问题描述】:
这是我的功能(fun1.m):
函数 n = F(x)
e=exp(1)
如果 (-1
n=x;elseif (0
n=x.*e.^x;elseif (1
n=x^3;结束
如果我的 x=-1:0.01:3
和 y=fun1(-0.5) ; y=fun1(0.5) ; y=fun1(2) 返回正确的值,那么为什么
y=fun1(x)
返回:
???期间未分配的输出参数“n”(可能还有其他参数) 调用“C:\Program Files\MATLAB\R2011a\bin\fun1.m>fun1
请帮忙,我卡住了!我尝试了以数组作为输入的简单函数(没有 ifs/elses),它们按预期工作。另外,如果我添加到 fun1 的末尾
其他
y=99;
它不会给我错误,但会给我 y=99 响应。我认为我的输入超出了范围,但我不知道如何。
【问题讨论】:
-
嗯,是的。您的
x介于 -1 和 3 之间,因此它不属于您的任何类别,因此是99结果。 -
旁注:您不应将自己的函数存储在 Matlab 程序安装本身下。您可以将它们放在用户主目录下的
My Documents\MATLAB中,它们会自动出现在路径上。 -
我不太了解你 am304,x 是 1x401 数组,我希望得到的 y 也是 1x401 数组。对于前 100 个 x'es,应该计算 y=x,接下来的 100 个应该是 y=x.*e.^x;最后 201 y=x^3;你能帮我修复我的功能,让它给我这些结果吗?这是我的问题的图片:i.imgur.com/PllyjFZ.png