我想实现以下功能。但我不知道如何在一组变量上定义函数,例如mu(1)
,mu(2)
,mu(3)
,...,mu(c)
。 c
是一个数字符号(即它是函数的参数,但不是输入值):
f := (mu(i), i=1..c) -> sum(mu(i)^2,i=1..c)
换句话说,我想要f(MU)=norm(MU)^2
的符号形式,其中MU
是1xc
变量的向量。
由于
修改: 实际上,我想在Modeling Uncertainty with Fuzzy Logic: With Recent Theory and ...的mupad中跟踪以下计算。
我还附上了计算步骤(模糊c-means)的图片。
答案 0 :(得分:1)
我不确定我是否理解这个问题(c
如何成为参数,而不是输入值?)
>> f = @(mu) sum(mu .^ 2); % applied on all elements
>> g = @(mu, c) sum(mu(1 : c) .^ 2); % applied on mu(1:c)
>> f(1:3)
ans =
14
>> g(1:10, 3)
ans =
14
答案 1 :(得分:1)
f := mu -> _plus(mu[i]^2 $ i=1..nops(mu));
使用列表调用:
f([1,2,3,4])
或者,能够调用f(1,2,3,4)
:
f := () -> _plus(args(i)^2 $ i=1..args(0));