![]() |
[求助]nargin的理解(见程序第6行)
function A=myhilb(n,m)
if nargout>1 error('too many output arguments.'); end if nargin==1,m=n; elseif nargin==0|nargin>2 error('Wrong number of input argments.'); end for i=1:n for j=1:m A(i,j)=1/(i+j-1); end end 对于 elseif nargin==0|nargin>2 我的理解是当输入变量个数为0,或大于2时,将会给出出错信息。 但是,这题的运行结果是: 在命令窗口输入: A=myhilb(3,4) 输出结果为: A = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 我想请教论坛中的高人,我该怎么理解nargin和nargout这两个matlab自带的变量?? |
高人怎么不露面啊???
|
怎么没人进来吼两声啊??
真的需要帮助啊!!! |
解答
2 个附件
下面两个是pdg格式的文件,你可以看一下。
|
请直接给出你的错误信息
|
[QUOTE=shiqiang;10895]下面两个是pdg格式的文件,你可以看一下。[/QUOTE]
非常感谢!我现在已经搞明白了 实际上程序没错,是我理解错了 输入值为1和2时都是对的 |
回复: [求助]nargin的理解(见程序第6行)
[QUOTE=wmch85;10015]function A=myhilb(n,m)
if nargout>1 error('too many output arguments.'); end if nargin==1,m=n; elseif nargin==0|nargin>2 error('Wrong number of input argments.'); end for i=1:n for j=1:m A(i,j)=1/(i+j-1); end end 对于 elseif nargin==0|nargin>2 我的理解是当输入变量个数为0,或大于2时,将会给出出错信息。 但是,这题的运行结果是: 在命令窗口输入: A=myhilb(3,4) 输出结果为: A = 1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 我想请教论坛中的高人,我该怎么理解nargin和nargout这两个matlab自带的变量??[/QUOTE] 其实你的输入变量个数还是2个,值分别是3,4;而不是理解成n,m值的大小 |
回复: [求助]nargin的理解(见程序第6行)
楼主错认为:“nargin>2”成“nargin>=2”
我 起先被你说的也有如此疑问 |
所有时间均为北京时间。现在的时间是 12:26。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.