f********o 发帖数: 1163 | 1 设想我们有几个函数handle
haha{1} = @(a,b) a+b;
haha{2} = @(a,b,c) a*b+c;
....
haha{n} = @(a,b) a/b;
好,现在需要做的是,根据每个handle可以接收的变量个数,产生一个随机数组
heihei,比方说第一个handle,可以接受两个,我就产生一个1*2的vector; 第二个,
1*3的vector。然后将这个vector的元素依次代入handle得到最后的值。
但如果用循环来做的话,怎么写呢?对于单独一个handle,haha{1}(heihei(1),
heihei(2))可以用;但如果heihei有很多元素,难道只能写
for ii = 1:length(haha)
switch (nargin(haha{ii}))
case 1
value(ii) = haha{ii}(heihei(1));
case 2
value(ii) = haha{ii}(heihei(1),heihei(2));
....
case 100
................................................................
.......................... (Holy shit.....)
otherwise
QTNND
end
end
有啥好办法吗? | p***o 发帖数: 1252 | 2 Use another program to generate the holy shit loop for you ...
【在 f********o 的大作中提到】 : 设想我们有几个函数handle : haha{1} = @(a,b) a+b; : haha{2} = @(a,b,c) a*b+c; : .... : haha{n} = @(a,b) a/b; : 好,现在需要做的是,根据每个handle可以接收的变量个数,产生一个随机数组 : heihei,比方说第一个handle,可以接受两个,我就产生一个1*2的vector; 第二个, : 1*3的vector。然后将这个vector的元素依次代入handle得到最后的值。 : 但如果用循环来做的话,怎么写呢?对于单独一个handle,haha{1}(heihei(1), : heihei(2))可以用;但如果heihei有很多元素,难道只能写
| t****t 发帖数: 6806 | 3 if you have:
function y=f(x1, x2, x3);
then call it with
X={x1, x2, x3};
y=f(X{:});
【在 f********o 的大作中提到】 : 设想我们有几个函数handle : haha{1} = @(a,b) a+b; : haha{2} = @(a,b,c) a*b+c; : .... : haha{n} = @(a,b) a/b; : 好,现在需要做的是,根据每个handle可以接收的变量个数,产生一个随机数组 : heihei,比方说第一个handle,可以接受两个,我就产生一个1*2的vector; 第二个, : 1*3的vector。然后将这个vector的元素依次代入handle得到最后的值。 : 但如果用循环来做的话,怎么写呢?对于单独一个handle,haha{1}(heihei(1), : heihei(2))可以用;但如果heihei有很多元素,难道只能写
| f********o 发帖数: 1163 | 4 惊现大牛神回复。简直就是黑暗中的光芒。
多谢,你一定是暴走的超神。
【在 t****t 的大作中提到】 : if you have: : function y=f(x1, x2, x3); : then call it with : X={x1, x2, x3}; : y=f(X{:});
| t****t 发帖数: 6806 | 5 you are welcome, this is actually documented in
http://www.mathworks.com/help/matlab/matlab_prog/comma-separate
【在 f********o 的大作中提到】 : 惊现大牛神回复。简直就是黑暗中的光芒。 : 多谢,你一定是暴走的超神。
| f********o 发帖数: 1163 | 6 呵呵,能否再帮我瞧一下我刚发的帖子,有一个新问题。谢谢了。
【在 t****t 的大作中提到】 : you are welcome, this is actually documented in : http://www.mathworks.com/help/matlab/matlab_prog/comma-separate
|
|