Order terms in symbolic poly converted to string

1 回表示 (過去 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 Center および File ExchangeFormula Manipulation and Simplification についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by