在MATLAB中与数组中的值求和

时间:2018-04-30 10:40:43

标签: matlab sum

我对使用symsum函数的MATLAB中的总和有疑问。

enter image description here

我想实现这个函数,其中ti是数组中的第i个值:

t = {2,5,6,10}作为n = 4

的示例

和U是一个符号变量。

在某种程度上可能吗?

syms i, u
t={2, 5, 6, 10}    
symsum((u-i+1)*t{i},i,1,10);
然后,Matlab给了我错误:

Error using sym/subsindex (line 769)
Invalid indexing or function definition. When defining a function, ensure that the arguments are
symbolic variables and the body of the function is a SYM expression.

有人能帮助我吗? 提前致谢

修改:更改了示例公式

1 个答案:

答案 0 :(得分:1)

您正在混合数值计算和符号计算。哪个也写在错误信息中:

  

函数参数必须是符号变量和函数体   必须是sym表达。

t不是符号表达式,它是数字(它只包含数字)。解决方案是将您的方法与任一方向对齐。在这种情况下,它意味着数字版本,因为符号索引没有意义。

<强>数值

使用标准金额(这也是最快的):

i = 1:4
syms U0
t = [2, 5, 6, 10];
f(U0) = sum((U0-i+1).*t);