Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-05-15, 16:20   #1
wmch85
普通会员
 
注册日期: 2008-03-20
年龄: 41
帖子: 30
声望力: 18
wmch85 正向着好的方向发展
默认 [求助]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   #2
wmch85
普通会员
 
注册日期: 2008-03-20
年龄: 41
帖子: 30
声望力: 18
wmch85 正向着好的方向发展
默认

高人怎么不露面啊???
wmch85 当前离线   回复时引用此帖
旧 2008-05-16, 16:02   #3
wmch85
普通会员
 
注册日期: 2008-03-20
年龄: 41
帖子: 30
声望力: 18
wmch85 正向着好的方向发展
默认

怎么没人进来吼两声啊??
真的需要帮助啊!!!
wmch85 当前离线   回复时引用此帖
旧 2008-05-16, 17:25   #4
shiqiang
高级会员
 
shiqiang 的头像
 
注册日期: 2008-02-26
年龄: 38
帖子: 158
声望力: 25
shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦shiqiang 身上有一圈迷人的光环哦
默认 解答

下面两个是pdg格式的文件,你可以看一下。
上传的附件
文件类型: rar 桌面.rar (21.4 KB, 49 次查看)
__________________
学我想学,用我所学。:lovely:
shiqiang 当前离线   回复时引用此帖
旧 2008-05-16, 18:12   #5
zhanhuichong
普通会员
 
注册日期: 2008-04-04
年龄: 38
帖子: 46
声望力: 20
zhanhuichong 是一个将要出名的人zhanhuichong 是一个将要出名的人
默认

请直接给出你的错误信息
zhanhuichong 当前离线   回复时引用此帖
旧 2008-05-17, 17:48   #6
wmch85
普通会员
 
注册日期: 2008-03-20
年龄: 41
帖子: 30
声望力: 18
wmch85 正向着好的方向发展
默认

引用:
作者: shiqiang 查看帖子
下面两个是pdg格式的文件,你可以看一下。
非常感谢!我现在已经搞明白了
实际上程序没错,是我理解错了
输入值为1和2时都是对的
wmch85 当前离线   回复时引用此帖
旧 2009-09-15, 17:10   #7
ximifly
初级会员
 
注册日期: 2008-07-09
年龄: 39
帖子: 2
声望力: 0
ximifly 正向着好的方向发展
默认 回复: [求助]nargin的理解(见程序第6行)

引用:
作者: wmch85 查看帖子
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个,值分别是3,4;而不是理解成n,m值的大小
ximifly 当前离线   回复时引用此帖
旧 2009-09-17, 22:02   #8
xsprinkle
普通会员
 
注册日期: 2008-11-06
年龄: 42
帖子: 39
声望力: 17
xsprinkle 正向着好的方向发展
默认 回复: [求助]nargin的理解(见程序第6行)

楼主错认为:“nargin>2”成“nargin>=2”
我 起先被你说的也有如此疑问
xsprinkle 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
生成四阶M序列信号 空心的泪 MATLAB论坛 0 2008-06-03 16:26


所有时间均为北京时间。现在的时间是 16:31


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