【发布时间】:2014-01-05 09:34:00
【问题描述】:
我在通过先前定义的常量在 Octave/Matlab 中定义函数的默认参数时遇到问题。有人可以给我一个提示,为什么在下面的代码中test1(1) 显示1 和100,而test2(1) 失败,error:testarg' undefined near line 1 column 36`?非常感谢!
testarg = 100
function test1 (arg1=testarg, arg2=100)
disp(arg1)
disp(arg2)
endfunction
function test2 (arg1=testarg, arg2=testarg)
disp(arg1)
disp(arg2)
endfunction
test1(1)
test2(2)
编辑:
请注意参数的顺序很重要:
function test3 (arg1=100, arg2=testarg)
disp(arg1)
disp(arg2)
endfunction
octave:8> test1(1)
1
100
octave:9>test3(1)
error: `testarg' undefined near line 1 column 32
【问题讨论】:
-
“作品”是什么意思?您想为这些功能获得哪些结果?你实际上得到了什么?
-
对不起,如果我不准确;第二个调用声称 testarg 未定义。我编辑了我的问题:)
-
也许
test2期望得到两个变量?在test1中,您定义了第二个验证,所以它没有问题...... -
但它会不会抱怨
arg2而不是testarg?请注意我的其他编辑。感谢您的帮助。
标签: matlab arguments constants default-arguments