-3

我输入:

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

注意。任何地方都没有 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".
4

2 回答 2

2

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

在这里的行中:

levels=range/quantise_range;

您实际上是在调用该range函数,但没有向其传递参数。

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

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

于 2013-01-22T03:59:05.903 回答
2

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

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

Matlab 有很多可用的帮助。我建议访问他们的网站并搜索一下。(或者只是谷歌“matlab 简介”)

于 2013-01-21T23:55:20.370 回答