1

MATLAB问题:

假设我在元胞数组中有很长的属性名称列表。

属性 = {'property01', 'property02', 'property03', .... , 'property50'};

以及每个属性的相应值。

值 = [val01, val02, val03, ...., val50];

现在我有一个函数,它根据特定条件将可变数量的属性作为输入。正确使用该函数的主要限制之一是只调用一次,并将所有必需的属性作为输入输入。(所以我不能在for循环中调用函数,每次循环不同的属性设置)

例如,如果某些条件迫使我使用 4 个属性,那么正确的用法是:

输出= someFunction(数据,'property01',val01,'property02',val02,'property03',val03,'property04',val04);

如何为只调用一次的函数提供可变数量的属性?

Mayur Narsude

4

2 回答 2

1

尝试这个:

pv = [properties;values];
output = someFunction(data, pv{:});

基本上,您创建一个 2xN 单元阵列,当它被线性化时,属性和值交替出现。

(那是在调用方。在函数定义中,您将使用另一个答案中提出的 varargin 。我想您在问题中所问的问题尚不清楚。)

于 2013-04-05T23:41:09.463 回答
0

我想你正在寻找varargin. 将其用作函数定义中的输入变量之一将允许您使用不同数量的输入调用函数。

于 2013-04-05T23:25:55.313 回答