Matlab中符号变量的总和

问题描述 投票:2回答:1

我想对由此构造的符号变量求和,

 x =  transpose(sym('x',[1 5]))

我以为我可以通过x1打电话给x(1)。因此,我做了以下,

syms p 
symsum(p^(i)*x(i),i,1,5)

不幸的是我收到了以下错误

数组索引必须是正整数或逻辑值。

有没有办法解决这个错误?

matlab
1个回答
1
投票

根据symsum的文档,范围的变量(在你的情况下i应该是一个符号变量)。您尚未将i定义为符号变量,因此它被认为是imaginary unit(这是它的默认内置定义)。避免使用ij作为变量总是明智的,因为这些是用于MATLAB中的虚构单元。

然而,修复此问题并不能解决所有问题。显然,symsum的函数定义中不允许索引符号变量。要做你想做的操作,我会像这样使用sum

x =  sym('x', [1 5]);   
syms p;
sum(p.^(1:5) .* x)

这使:

ans = 
x5*p^5 + x4*p^4 + x3*p^3 + x2*p^2 + x1*p
© www.soinside.com 2019 - 2024. All rights reserved.