Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Octave help func和help(func)在倍频程中的差异_Octave - Fatal编程技术网

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
显示了函数的帮助
sum

help hello
相当于
help('hello')
(注意引号)。命令语法总是由所有参数组成字符串。这是否回答了您的问题?您好@cris luengo,谢谢您考虑我的答案。我仍然不明白,为什么它不能使用双引号,为什么它看起来像是在运行给定的函数(根据堆栈跟踪)?