CODE DELETED
嗨,上面的代码是我的(略微修改过的)rooo.m文件。 我只是试图通过键入(octave)终端
来绘制函数x = 1:1:40;
plot(x, rooo(x), '+');
但这只会打印y = 1的图表。 我相信它是因为y = 1;在第一行(顺便说一下,函数本身返回正确的值,比如当我输入rooo(3)时)。 当我将其更改为其他数字(例如b)时,图表将显示y = b。
有没有人知道为什么会发生这种情况?
答案 0 :(得分:1)
它不起作用,因为你永远不会从{1}开始输入while循环。从
开始 x
在开始时为false,函数返回。
然而,当你打电话给rooo(3)或实际上rooo(任何> 1)它确实有效。当x = 1.1:1:40时,情节看起来像这样(我用Matlab制作):
答案 1 :(得分:1)
我认为它不起作用,因为如果在命令行键入rooo(x)
,它将返回标量结果1
,而不是向量。当1 < n
是向量时,n
逻辑条件不会按预期工作。
这是一个让它工作的建议(也许不是最优雅但似乎有效):
CODE DELETED
当您在问题中调用时,会给出以下情节
结果似乎与MATLAB中报告的结果不同。
另一种方法是,如果您不想修改自己的功能,可以改变调用方式:
>> x = 1:1:40;
>> y = ones(size(x));
>> for k=1:length(x)
y(k) = rooo(x(k));
end
>> plot(x,y,'+')
这给出了与上述建议相同的结果。