# scientific notation convertion of coefficients of a polynomial

3 vues (au cours des 30 derniers jours)
MINATI PATRA le 27 Jan 2024
Commenté : Dyuman Joshi le 31 Jan 2024
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25;
%% I want Matlab to convert all the coefficients of f(x) like: 7.7315661 e-20 (one digit before decimal and the exponential form with base 10 or e) and give me a modified f(x)
##### 3 commentairesAfficher 1 commentaire plus ancienMasquer 1 commentaire plus ancien
MINATI PATRA le 27 Jan 2024
Yes, it is required for a particular sense. Actually I got the code from this format 3 years back but forgotten. That comand solved my purpose which vpa couldn't. That's why it is needed.
Walter Roberson le 31 Jan 2024
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25;
vpa(f, 8)
ans =

Connectez-vous pour commenter.

### Réponse acceptée

MINATI PATRA le 27 Jan 2024
FM = regexprep(char(vpa(f)),'([0-9]+\.[0-9]+)','\${num2str(str2num(\$1),''%e'')}')
This is working.
##### 5 commentairesAfficher 3 commentaires plus anciensMasquer 3 commentaires plus anciens
MINATI PATRA le 31 Jan 2024
@ Dyuman
Yes, I will use that expression as solution of ODE, nothing more with that.
Dyuman Joshi le 31 Jan 2024
@Minati, Very well.

Connectez-vous pour commenter.

### Plus de réponses (2)

VBBV le 27 Jan 2024
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25
f =
f = vpa(f,2)
f =
something like this
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Dyuman Joshi le 27 Jan 2024
Modifié(e) : Dyuman Joshi le 27 Jan 2024
@VBBV, nice idea, however, it does not change the notation for all values, please see the coefficients of x^4, x^3, x^2, x^1 and x^0.

Connectez-vous pour commenter.

Steven Lord le 30 Jan 2024
syms x
f = - 0.042440155 + 0.29476113*x + 0.47380563*x^2 - 0.17632127*x^3 + 0.038426007*x^4 - 0.005090693*x^5 + ...
0.00073686606*x^6 - 0.00024549191*x^7 + 0.000072758471*x^8 - 0.000017260649*x^9 + 0.0000048409949*x^10 - ...
0.0000014708831*x^11 + 0.00000037777292*x^12 - 0.000000086757727*x^13 + 0.000000020031646*x^14 - ...
4.1039434e-9*x^15 + 5.354131e-10*x^16 + 3.6711725e-12*x^17 - 1.9835736e-11*x^18 + 4.9956502e-12*x^19 - ...
7.3416852e-13*x^20 + 7.2822196e-14*x^21 - 4.9740077e-15*x^22 + 2.2607386e-16*x^23 - ...
6.1866125e-18*x^24 + 7.7315661e-20*x^25
f =
c = coeffs(f, 'all') % or
c =
[c, t] = coeffs(f)
c =
t =
Now you can do whatever formatting you want with c.
The 'all' option and/or the second input are useful if one of the powers of x is not present in f, as in this example:
f2 = x^3+2*x+3
f2 =
c1 = coeffs(f2) % Missing the x^2 term and in a different order
c1 =
c2 = coeffs(f2, 'all') % Including the x^2 term
c2 =
[c3, t3] = coeffs(f2) % x^2 (and its coefficient) are not present in both c3 and t3
c3 =
t3 =
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Numbers and Precision dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by