Replace powers with a sequence

2 ビュー (過去 30 日間)
Mohammad Shojaei Arani
Mohammad Shojaei Arani 2022 年 1 月 26 日
Hello friends!
Consider a binomial symbolic expression like (x-1)^3 and a symbolic vector e of size 3 (e=sym('e',[1 3]) ). Of
course, in my real problem I have 'n' instead of 3 but I just used 3 here for simplicity. If expand (x-1)^3 then I get
(x-1)^3 = x^3-3*x^3+3*x-1;
which includes all powers of x from 0 to 3, as we know. Now, I need to substitute x with e(1), x^2 with e(2), x^3 with e(3).
Unfortunately, I cannot use 'subs' command here since when I try to assign x with e(1), it automatically assigns x^2 with
e(1)^2 and x^3 with e(1)^3 which is not what I want (similarly, if I try to asign x^2 with e(2) it might interfere with other powers
of x).
Ant idea?
  2 件のコメント
Mohammad Shojaei Arani
Mohammad Shojaei Arani 2022 年 1 月 27 日
No. I do not mean exp. 'e' is just a symbolic array. If you look at the title of mt post "Replace powers with asequence" you will see that I am not cconsidering a specific sequence.


回答 (1 件)

Torsten 2022 年 1 月 26 日
syms x
c = sym2poly(expand((x-1)^3));
e = sym('e',[3,1]);
c_times_e = c*e

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by