MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [求助]nargin的理解(见程序第6行) (https://www.labfans.com/bbs/showthread.php?t=3055)

wmch85 2008-05-15 16:20

[求助]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自带的变量??

wmch85 2008-05-16 11:36

高人怎么不露面啊???

wmch85 2008-05-16 16:02

怎么没人进来吼两声啊??
真的需要帮助啊!!!

shiqiang 2008-05-16 17:25

解答
 
2 个附件
下面两个是pdg格式的文件,你可以看一下。

zhanhuichong 2008-05-16 18:12

请直接给出你的错误信息

wmch85 2008-05-17 17:48

[QUOTE=shiqiang;10895]下面两个是pdg格式的文件,你可以看一下。[/QUOTE]

非常感谢!我现在已经搞明白了
实际上程序没错,是我理解错了
输入值为1和2时都是对的

ximifly 2009-09-15 17:10

回复: [求助]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值的大小

xsprinkle 2009-09-17 22:02

回复: [求助]nargin的理解(见程序第6行)
 
楼主错认为:“nargin>2”成“nargin>=2”
我 起先被你说的也有如此疑问


所有时间均为北京时间。现在的时间是 05:27

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.