我输入:
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".
答案 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
的变量并不重要,因为函数内部有一个变量。