Help on trigonometric operations using syms variable.

5 views (last 30 days)
I'm performing trigonometric operations on a syms variable 't4'.
The input is:
sind(t4-90)
The output that I'm getting is 'sin(pi*(t4-90)/180)'. How do I get it displayed in terms of 'cos' instead? I wish to get the answer in a simplified form.
Thanks!

Accepted Answer

John D'Errico
John D'Errico on 7 Sep 2019
Edited: John D'Errico on 7 Sep 2019
You probably need to use rewrite.
syms t4
S = sind(t4-90)
S =
sin((pi*(t4 - 90))/180)
rewrite(expand(S),'sincos')
ans =
-cos((pi*t4)/180)
I did need to expand the extrpession to get rewrite to work.
rewrite(expand(S),'cos')
would also have worked.
rewrite was introduced in R2012a, so most people should have it.
  2 Comments
iamShreyans
iamShreyans on 7 Sep 2019
Edited: iamShreyans on 7 Sep 2019
Thanks a lot for the help John! The 'sind(t4-90)' is actually a term of a matrix that I'm generating using a loop function and there are more such terms inside the matrix. I would be happy to know if there is a way to apply the expand function to all terms of a matrix at once. Also is can the output be obtained in the cosd/sind functions? I don't wish to see the pi/180 term to make my output more readable.
Walter Roberson
Walter Roberson on 7 Sep 2019
expand(YourMatrix) does work on all entries in the matrix.
It is not possible to see the output in terms of sind and cosd without going to a bunch of bother writing MuPad procedures. In r2019a and later there are functions that make it a lot easier do mapping transformation that would be able to narrow down to sin and cos terms and extract and manipulate their arguments, but very shortly after you substituted the sind and cosd equivalents, matlab would see that those were function calls and would evaluate them which would promptly rewrite back to sin and cos.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!