「読み取り専用であるため、クラス 'dtmc' の 'P' プロパティを設定できません。」を解決するにはどうすればよいですか?
8 ビュー (過去 30 日間)
古いコメントを表示
マルコフ連鎖のMATLAB関数について質問です。
https://jp.mathworks.com/help/econ/dtmc.html
「読み取り専用であるため、クラス 'dtmc' の 'P' プロパティを設定できません。」のエラーを回避し、
mc = dtmc(P)を実行後のmc.Pを編集可能にしたいのですが、どうすればよいでしょうか?
1 件のコメント
Atsushi Ueno
2022 年 1 月 15 日
mc.Pを編集する為にdtmc関数を使って新たにmcを作り直せば良いと思ったのですが、直接mc.Pを変更したい理由があるのでしょうか?
mc = dtmc([0.5 0.5 0 0; 0.5 0 0.5 0; 0 0 0 1; 0 0 1 0], ...
'StateNames',["Depression" "Recession" "Stagnant" "Boom"])
mc.P
mc.P = [0.5 0.5 0 0; 0.5 0 0.5 0; 0 0 0 1; 0 0 1 0]
採用された回答
Atsushi Ueno
2022 年 1 月 15 日
which dtmc % 御使用の環境により場所は異なります
の最初の方にある
properties (SetAccess = private, GetAccess = public) % privateをpublicに変更する
P % Normalized transition matrix
end
上記のprivateをpublicに変更すればやりたい事が実現するはずです。(動作確認していません)
ただToolboxの中身を変更する事はあまり推奨できないので、独自の構造体を作成する方が良いと思います。
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Markov Chain Models についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!