フィルターのクリア

How to separate negative and positive terms in to two different expressions

1 回表示 (過去 30 日間)
EllaD
EllaD 2020 年 12 月 3 日
コメント済み: Ameer Hamza 2020 年 12 月 3 日
I am using symolic vavriables
syms a b c d f g
Where all syms variables are positive
and have, for example the following expression A
F=a- b*d+ g*c-a*c+ d*g
my actual expression is much longer but how can I separate the negative vs the positive terms and put them in say in x and y?
I appreciate any help .
Thank you!

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 12 月 3 日
Try this
syms a b c d f g
F = a - b*d + g*c - a*c + d*g;
parts = children(F);
parts = [parts{:}];
assume(symvar(parts)>0)
sgns = sign(parts);
assume(symvar(parts), 'clear')
x = parts(sgns==1);
y = parts(sgns==-1);
  4 件のコメント
EllaD
EllaD 2020 年 12 月 3 日
gives this:
Error using cellfun
Input #2 expected to be a cell array, was sym instead.
Error in negativepositive (line 17)
sgns = cellfun(@sign, parts);
it is 2012a . But thanks anyways Ameer :) I will be going for an upgrade, it is way old I guess.
Ameer Hamza
Ameer Hamza 2020 年 12 月 3 日
Yes, it seems something related to old release. It seems that children() does not return a cell array in your case.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumber Theory についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by