Octave help func和help(func)在倍频程中的差异
与Octave help func和help(func)在倍频程中的差异,octave,Octave,与help(func)相比,help功能在用作help func时的工作方式有所不同 例如,执行help mvnrd,显示所需的输出: >帮助mvnrnd “mvnrd”是文件/home/student/octave/statistics-1.4.0/mvnrd.m中的函数 --函数文件:S=mvnrnd(μ,σ) --函数文件:S=mvnrnd(μ,σ,N) --函数文件:S=mvnrnd(…,TOL) 从多元高斯分布中抽取N个随机D维向量 平均μ(NxD)和协方差矩阵σ(DxD)的分布。 M
help(func)
相比,help
功能在用作help func
时的工作方式有所不同
例如,执行help mvnrd
,显示所需的输出:
>帮助mvnrnd
“mvnrd”是文件/home/student/octave/statistics-1.4.0/mvnrd.m中的函数
--函数文件:S=mvnrnd(μ,σ)
--函数文件:S=mvnrnd(μ,σ,N)
--函数文件:S=mvnrnd(…,TOL)
从多元高斯分布中抽取N个随机D维向量
平均μ(NxD)和协方差矩阵σ(DxD)的分布。
MU必须是N×D(如果给定N,则为1×D)或标量。
如果参数TOL给定,则检查SIGMA的特征值
对于-100*tol的正性。tol的默认值为
‘eps*标准(西格玛,fro)’。
有关内置函数和运算符的其他帮助,请参阅
在手册的在线版本中提供。使用命令
“doc”用于搜索手动索引。
有关Octave的帮助和信息也可在WWW
在http://www.octave.org 通过help@octave.org
邮件列表。
执行帮助(mvnrnd)
时,产生错误:
>帮助(mvnrnd)
错误:第22行第50列附近未定义“Sigma”
错误:从调用
mvnrnd
我以为help func
和help(func)
都是一样的,但似乎有一些差异,我在网上搜索时找不到。有什么想法吗
我还尝试创建自己的函数,例如:
函数hello()
%Whatsup
打印(“你好”)
结束
也有同样的行为。执行help hello
工作正常,而执行help(hello)
时会出现错误。这就像它试图在函数内部执行代码一样,因为堆栈跟踪引用了函数及其调用函数的代码。这是输出:
>帮助(您好)
警告:print.m:fig2dev二进制文件不可用。
某些输出格式不可用。
警告:从
__打印第388行第9列的“分析”选项
在第8列第316行打印
您好,第三行第三栏
错误:打印:没有要打印的图形
错误:从调用
在第341行第5列打印
您好,第三行第三栏
注意:要访问mvnrnd
,必须加载包statistics
:
pkg负载统计信息
MATLAB语言似乎既有函数(如sum
)也有命令(如help
)。然而,它只知道函数。“命令语法”是在调用函数时去掉括号的地方。函数名后面的内容在空格处拆分并解释为字符串,这些字符串作为参数传递给函数。所以,
帮助mvnrnd
与
help('mvnrn'))
(请注意,在倍频程中,双引号相当于单引号,因此help(“mvnrnd”)
也是一样的;在MATLAB中,双引号具有不同的含义)
您可以在中阅读有关此语法的更多信息
当你写作时
帮助(mvnrnd)
然后Octave首先将参数解释为函数,mvnrnd
,尝试在没有任何参数的情况下运行该函数(在MATLAB语言中,mvnrnd
与mvnrnd()
相同)。如果这没有产生错误,它将调用help
,使用mvnrd
生成的任何输出
让我们做一个实验:
function out=myfunc
%这是函数myfunc的帮助
out=‘sum’;
结束
现在我们看到:
>帮助myfunc
“myfunc”是文件/home/cris/octave/myfunc.m中的函数
这是函数myfunc的帮助
>>帮助('myfunc')
“myfunc”是文件/home/cris/octave/myfunc.m中的函数
这是函数myfunc的帮助
>>帮助(myfunc)
“sum”是文件libinterp/corefcn/data.cc中的内置函数
--总和(X)
--总和(X,DIM)
--总和(…,“本机”)
--总和(……,“双”)
--总和(……,“额外”)
沿维度DIM的元素之和。
也就是说,在第三种情况下,
myfunc
返回了sum
,现在help
显示了函数的帮助sumhelp hello
相当于help('hello')
(注意引号)。命令语法总是由所有参数组成字符串。这是否回答了您的问题?您好@cris luengo,谢谢您考虑我的答案。我仍然不明白,为什么它不能使用双引号,为什么它看起来像是在运行给定的函数(根据堆栈跟踪)?