MATLAB问题:
假设我在单元格数组中有很长的属性名称列表。
properties = {'property01','property02','property03',....,'property50'};
以及每个属性的相应值。
values = [val01,val02,val03,....,val50];
现在我有一个函数,它根据特定条件将可变数量的属性作为输入。正确使用该功能的一个主要限制是只调用一次,并将所有必需的属性作为输入输入。 (所以我不能在for循环中调用函数,每次循环不同的属性设置)
e.g。如果某些条件迫使我使用4个属性,那么正确的用法将是:
output = someFunction(data,'property01',val01,'property02',val02,'property03',val03,'property04',val04);
如何为只能调用一次的函数提供可变数量的属性?
Mayur Narsude
答案 0 :(得分:1)
试试这个:
pv = [properties;values];
output = someFunction(data, pv{:});
基本上,你创建一个2xN的单元格aray,当它被线性化时,属性和值会交替出现。
(那是在主叫方面。在函数定义中,你会使用另一个答案中提出的varargin。我想你在问题中询问的不清楚。)
答案 1 :(得分:0)
我认为你正在寻找varargin
。将其用作函数定义中的输入变量之一将允许您使用不同数量的输入调用函数。