???输入参数“x”未定义

时间:2013-01-21 23:38:20

标签: matlab

我输入:

EDU>> %using the temporary variable levels
EDU>> levels=range/quantise_range;
levels=round(levels);
quantisation_bits=log2(levels)

NB。在任何地方都没有x变量

我的错误是:

??? Input argument "x" is undefined.

Error in ==> range at 18
    y = max(x) - min(x);

EDU>> %combining above process into one statement
quantisation_bits=log2(round(range/quantise_range));
??? Input argument "x" is undefined.

Error in ==> range at 18
    y = max(x) - min(x);

有人会关心解释这个问题吗?我是编程初学者,我真的不明白如何阅读错误提示。

感谢。

此外,由于我的错误原因可能是由于我的错误,我在这里找到了这个代码的麻烦,错误也包括在内:

%尝试创建我自己的函数,我在行的末尾按shift + enter来获得整洁:

EDU>> function what_am_i()
disp 'I am a function'
??? function what_am_i()
    |
Error: Function definitions are not
permitted in this context.

EDU>> 
function what_am_i()
disp' I am a function'
??? function what_am_i()    
    |
Error: Function definitions are not
permitted in this context.

EDU>> end
??? end
    |
Error: Illegal use of reserved keyword
"end".

2 个答案:

答案 0 :(得分:2)

您可能会将“命令窗口”与“编辑器”混淆。 在“命令窗口”中,您可以输入一些代码行,但不能创建函数。它更像是一个计算器。

如果您创建并保存文件,那么您可以在“编辑器”中打开它们,那时Matlab开始表现得更像编程语言。它保存了.m个可以包含函数或算法的文件。

Matlab提供了很多帮助。我建议访问他们的网站并搜索一下。 (或只是谷歌“介绍matlab”)

答案 1 :(得分:2)

除了@ user1860611关于命令窗口中的函数定义的答案之外,您遇到的另一个问题与range(内置函数)有关。您似乎正在尝试将range用作变量名,但实际上并未将其初始化为某个值,因此它仍然是一个函数。

在这里:

levels=range/quantise_range;

你实际上是调用range函数,但没有传递参数。

Error in ==> range at 18
y = max(x) - min(x);

错误消息告诉您名为range的函数已生成错误。没有名为x的变量并不重要,因为函数内部有一个变量。