这是我的功能(fun1.m):
函数n = F(x)
E = EXP(1)
if(-1< = x& x< = 0)
n=x;
elseif(0 <= x&amp; x&lt; = 1)
n=x.*e.^x;
elseif(1&lt; = x&amp; x&lt; = 3)
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&gt; fun1
请帮助,我被困住了!我尝试了将数组作为输入的简单函数(没有ifs / elses),并且它们按预期工作。另外,如果我添加到fun1的末尾
否则
Y = 99;
它没有给我错误,但给了我y = 99的回复。我认为我的输入超出范围,但我不知道如何。
答案 0 :(得分:0)
首先,使用&amp;&amp;而不是&amp;。
其次,您仍然可能有错误,因为精度错误,您的x可能略大于3或略小于-1。
编辑: 我以为你正在迭代x的值:
y = [];
for i=1:length(x)
y(i) = F(x(i));
end