Извлечь коэффициенты из символьного выражения

Позволять

syms h

g=exp(h)+h*exp(h)+h^2

Итак, коэффициенты g по отношению к h задаются функцией coeffs:

coeffs(g,h)

и он возвращает:

[exp(h),exp(h),1]

Это похоже на то, что эта функция работает с символьным выражением как многочлен в h.

Проблема в том, что эта функция не возвращает нулевые коэффициенты, поэтому, если у меня есть

g=h*exp(h)+h^2

функция возвращает только:

[exp(h), 1].

Но мне нужно:

[0,exp(h), 1]

Итак, что я могу здесь сделать?


person gustavoreche    schedule 21.09.2016    source источник


Ответы (2)


Я рассмотрел много тем по SO, и решение:

syms  h
g=h*exp(h)+h^2
m = eval(feval(symengine,'coeff',g,h,'All'));
person gustavoreche    schedule 22.09.2016

Я ненавижу быть одним из тех плакатов, которые читают лекции, но это указано прямо в справке Matlab (help coeff) или в Интернете

coeffs(g,h, 'All')
person user1543042    schedule 22.09.2016
comment
Я думаю, вы имеете в виду coeffs(g,h,'All'), поскольку coeff не существует. Проблема с функцией coeffs заключается в том, что вы не можете вводить с тремя аргументами, она принимает только два. Вы проверили свой ответ? - person gustavoreche; 22.09.2016
comment
Да, я это тестировал. Я просто перепечатал его, потому что он был таким коротким. Перейдите по этой ссылке, и вы увидите, что это вариант. - person user1543042; 22.09.2016