Extracting coefficients of 'sinwt', 'coswt', sin2wt etc from a symbiolic expression.

Hello,
I am having a mathmatical symbolic expression and want to extract the coefficient of 'sinwt', 'coswt', 'sin2wt' and so on.
For e.g. the expression is,
where, , and are symbolic variables. Now, is there anyway to get the coefficient of 'sinwt', 'coswt', 'cos3wt' etc. from this expression ? or in other words, is it possible to get the following desired output ?

5 Comments

What would be the desired output in that example? What would be the desired output for the example of
The origin of your cos(3*omega*t) and the division by 2 is not obvious to me. I do find that,
syms k [1 3]
syms omega t
y = k(1)*sin(omega*t) * k(2)*sin(2*omega*t) + k(3) * sin(omega*t)
y = 
yexp = rewrite(y, 'exp')
yexp = 
yexps = simplify(yexp)
yexps = 
ysincos = rewrite(yexps, 'sincos')
ysincos = 
ysincoss = simplify(ysincos)
ysincoss = 
In the end, I added the following code and it gives me the desired output.
combine(ysincoss,'sincos')
Ah... you can get there in a single step with
combine(y, 'sincos')

Sign in to comment.

Answers (1)

Hi,
My understanding is that you would like to extract the coefficients of a symbolic trigonometric expression. The function "coeffs" can be used to return coefficients of an expression with respect to a specified term as follows:
syms a b c x
expr = a*sin(x)*b*sin(2*x) + c*sin(x);
[csin, tsin] = coeffs(expr, [sin(x), sin(2*x)])
csin = 
tsin = 

Categories

Asked:

on 8 Aug 2021

Edited:

on 12 Aug 2021

Community Treasure Hunt

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

Start Hunting!