How to get number of factors after factorizing a symbolic function?

4 ビュー (過去 30 日間)
Bill Tubbs
Bill Tubbs 2020 年 7 月 6 日
コメント済み: Bill Tubbs 2020 年 7 月 6 日
I'm using factor to factorize a symbolic polynomial.
Works well but when the result is a symbolic vector containing the factors, I'm not sure how to determine how many factors it contains. I tried using size but I get some inconsistent results:
>> G(s) = s^2 + 3*s + 2;
>> F = factor(G, s)
F(s) =
[ s + 2, s + 1]
>> size(F)
ans =
1 1
>> F = factor(G(s), s)
F =
[ s + 2, s + 1]
>> size(F)
ans =
1 2
>>
Note, the size is different in the second example. The only difference is that I used factor(G(s), s) rather than factor(G, s). What is the difference and why does the result (F) look the same but the size is not the same?
  2 件のコメント
Bill Tubbs
Bill Tubbs 2020 年 7 月 6 日
編集済み: Bill Tubbs 2020 年 7 月 6 日
Ah, I think I know what is going on. class(G) is 'symfun' whereas class(G(s)) is 'sym'.
I guess I need to decide whether to pass the function itself or the symbolic expression it returns given s.
If I only pass the function (G), how would I determine how many factors it has? I.e. the dimension of the symbolic function.
madhan ravi
madhan ravi 2020 年 7 月 6 日
Now you don’t see Star’s answer below.

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

採用された回答

madhan ravi
madhan ravi 2020 年 7 月 6 日
numel(formula(F)) % will avoid confusions ;)
  1 件のコメント
Bill Tubbs
Bill Tubbs 2020 年 7 月 6 日
This seems to work whether F is an expression or a function. Thanks!

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

その他の回答 (0 件)

カテゴリ

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

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by