- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MATLABのシンボリックの係数行列の順序について)
MATLABのシンボリックの係数行列の順序について
このQ&Aのポイント
- MATLABで1変数多項式の係数行列を取得する際、順序に注意が必要です。
- 最高次の係数を基準に規格化する方法もあります。
- 初心者でも理解しやすいように解説しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
A No.1のKulesです。 >3 2 >x +2*x +1のような形で2行にわたって出力してしまいます… 2行で出てくるならむしろ好都合ですよね? 1行目に必ず次数が出てくるんですから。 これは文字列で出てくるんですかね? まあ10次以上出てくるならちょっと面倒ですが、0次~9次までなら 1文字ずつstr2numで数値かしてやって最大値を探すとかでしょうか?(多分転置すれば1発でいける気がしますが) 10次以上が出てくるならsscanfで地道に読み込むか、 (私の記憶ではスペース文字をstr2numにするとnanか0になります) あるいは数値が連続していることを検出して10進法で変換していくかですかね? 参考になれば幸いです。
その他の回答 (1)
- Kules
- ベストアンサー率47% (292/619)
回答No.1
私自身Symbolic Math Toolboxは使ってないんですが… http://www.mathworks.co.jp/help/ja_JP/toolbox/symbolic/coeffs.html を見ると、 [C, T] = coeffs(p,x) とすることでTに各項のリストが返されるらしいです。 Tが文字列なのかセルなのかはわかりませんが、 t =[ x^2, x] みたいな形になるんで、sscanfで^の後にある数字を取り出して、 一番大きいものを選ぶ…というのは上手くないですかね? 参考になれば幸いです。
質問者
補足
いつもご回答ありがとうございます。 返信遅くなってすいません。 Symbolic Math Toolboxではなく、MapleをToolboxとして使用しており、結果が x^3+2*x^2+1のような出力ではなく、 3 2 x +2*x +1のような形で2行にわたって出力してしまいます…
お礼
ご回答ありがとうございます。 返信遅れてすいません。。 いろいろやってみたのですが、sym2polyが最も簡単で扱いやすいようでした。 何度もありがとうございました。