Order terms in symbolic poly converted to string

조회 수: 7 (최근 30일)
Ethan Duckworth
Ethan Duckworth 2024년 7월 17일
댓글: Ethan Duckworth 2024년 7월 18일
Is there a way to control the order of the terms in a symbolic polynomial that has been converted to string?
E.g. the following
syms x
T=taylor(exp(x),order=3);
string(T)
results in
ans = "x + x^2/2 + 1"
and I would rather have it as 1+x+x^2/2 or the reverse order. I'll be putting this in the title of a plot so if there is some other way to automatically get the correct order in the title that would work equally as well.

채택된 답변

Liam Ivers
Liam Ivers 2024년 7월 18일
편집: Liam Ivers 2024년 7월 18일
Use the sympref function to change the display of the symbolic polynomial:
I noticed that the string function does not update with this change(A = "x + x^2/2 + 1"), but it does if you use the latex command (B = '1+x+\frac{x^2}{2}') which may look better for plot headings.
syms x
T=taylor(exp(x),order=3)
sympref('PolynomialDisplayStyle','ascend')
A = string(T)
B = latex(T)
titletext = ("$" + latex(T) + '$')
title(titletext,Interpreter='latex')
  댓글 수: 2
Sam Chak
Sam Chak 2024년 7월 18일
@Ethan Duckworth, Consider trying this "what-you-see-is-what-you-get" direct approach.
sympref("PolynomialDisplayStyle", "ascend");
syms x
T = taylor(exp(x), order=3)
T = 
titletext = ("$" + latex(T) + '$');
fplot(T), grid on
title(titletext, Interpreter='latex')
Ethan Duckworth
Ethan Duckworth 2024년 7월 18일
Weird that string(T) doesn't preserve the order of the terms, but that latex(T) does!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

James Tursa
James Tursa 2024년 7월 18일
편집: James Tursa 2024년 7월 18일
Brute force if you need the string for some reason?
syms x
ex = taylor(exp(x),order=3)
ex = 
[C,T] = coeffs(ex)
C = 
T = 
terms = fliplr(C.*T)
terms = 
n = numel(terms);
s = char(terms(1));
for k=2:n
c = char(terms(k));
if( c(1)=='-' )
s = [s ' - ' c(2:end)];
else
s = [s ' + ' c];
end
end
s
s = '1 + x + x^2/2'
  댓글 수: 1
Ethan Duckworth
Ethan Duckworth 2024년 7월 18일
Wholy cow! That works, but the shorter approach by @Liam Ivers is the one I accepted.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by