请问在matlab的函数说明的文档中,函数syntax中的“___”是什么意思?

比如在matlab的periodogram的文档中http://cn.mathworks.com/help/signal/ref/periodogram.html,[pxx,f] = periodogram(___,fs)和"[pxx,f] = periodogram(x,window,f,fs)"有什么区别吗?看起来“___”像是某种省略,但具体是如何省略的?

是省略。一般都结合上面的一行或几行来看。
例如,第4、5行省略号的意思是,省略的输入参数可以是1~3行中的任何一种,但输出可返回第2个参数。

MATLAB有不少程序都采用了可变参数个数并且同一个位置的参数可能有多种含义这样一种处理方式,以尽量给用户提供调用的便利。但需要说明两点:
1、这种处理一般是根据输入数据的数量及其取值来判断使用者意图的,需要在程序中有比较复杂的逻辑判断,比如,periodogram函数中就有子函数periodogram_options,而且子函数又调用了另外一个400多行的函数psdoptions进行相关处理。
2、尽管大多数函数能够妥善处理使用者的各种调用形式,但程序毕竟是人编的,仍有可能存在某些会引起歧义的地方,如果见到了,也没必要大惊小怪,只需要根据自己习惯的方式去使用即可。

就题主问到的具体函数来说,[pxx,f] = periodogram(___,fs)的省略号可以是1~3行的任一个:如果是前两个,与[pxx,f] = periodogram(x,window,f,fs)的参数个数不同,不会有什么歧义;如果是第3个,即
pxx = periodogram(x,window,nfft,fs),这种情况都是4个输入参数,MATLAB怎么判断第3个参数究竟是nfft还是f的呢?从文档的描述看,nfft应该是正整数,而f应该说是向量,这就是二者的区别。当然,具体在程序中怎么处理,以及处理的是否合理,都要具体去分析程序了。
温馨提示:答案为网友推荐,仅供参考
相似回答