想象一个具有可变数量输入参数的函数,交替地询问字符串和值。
myfunction('string1',value1,'string2',value2,...)
e.g。
myfunction('A',5,'B',10)
我希望能够像这样调用函数,我不想更改函数内varargin
的评估。 (如果有帮助,('string1','string2',...,value1,value2,...)
除外)
但我也将输入字符串和值存储在单元格数组inputvar <4x1 cell>
中:
inputvar =
'A' [5] 'B' [10]
此单元格数组也有可变长度。
我打算以某种方式调用我的函数:
myfunction( inputvar )
显然不起作用。我有什么想法可以将我的单元转换为有效的输入语法吗?
我已经尝试生成类似
的字符串''string1',value1,'string2',value2'
并使用eval
在函数调用中使用它。但它没有成功。那么,有没有办法将字符串转换为代码?
答案 0 :(得分:6)
你应该能够这样做:
myfunction(inputvar{:})
{:}
创建comma separated list
修改强> 例如:
function val = myfunction(string1,value1,string2,value2)
if string1 == 'A'
val = value1;
else
val = value2;
end
myfunction('A',5,'B',10)
myfunction('B',5,'B',10)
A = {'A',5,'B',10};
myfunction(A{:})
A = {'B',5,'B',10};
myfunction(A{:})
返回:
ans = 5
ans = 10
ans = 5
ans = 10