如何在mupad中实现这个功能(MATLAB)

时间:2012-12-04 10:45:43

标签: matlab symbolic-math

我想实现以下功能。但我不知道如何在一组变量上定义函数,例如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的符号形式,其中MU1xc变量的向量。

由于

修改: 实际上,我想在Modeling Uncertainty with Fuzzy Logic: With Recent Theory and ...的mupad中跟踪以下计算。

我还附上了计算步骤(模糊c-means)的图片。

calculations

2 个答案:

答案 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));