処理中が終わらない

조회 수: 81 (최근 30일)
Cir 2t
Cir 2t 2021년 3월 5일
댓글: Cir 2t 2021년 3월 6일
添付のscriptCCCM_2021でCCCM_2021を実行すると処理中となり、そのままフリーズします。
複素数になっているのかもしれませんが、調べ方がわかりません。
教えていただきたいです。

채택된 답변

Hernia Baby
Hernia Baby 2021년 3월 5일
おそらくメモリ不足です。
刻み幅がめちゃくちゃ細かいので、格納するデータ量も相当なものになると思います。
--------------------------------------------------------------
以下検証
CCCM_2021.mにカウントを入れました。
disp('count'+string(t))
scriptCCCM_2021でレンジを変えて計算しましたがものすごいです
[TClock_AR2011,XClock_AR2011] = ode45(@CCCM_2021, [0 5], IC , options);
特に以下はものすごい計算量になります。
sol = ode45(@CCCM_2021, [0 2], XClock_AR2011(end,:), options);
一応これで計算は回りました
これだけ短くしてもワークスペース内の変数サイズは大きいので元のコードだとメモリがパンクすると思います。
刻み幅を大きくするか、レンジを短くするしかないのかなと思います。
  댓글 수: 2
Hernia Baby
Hernia Baby 2021년 3월 5일
補足
disp('count'+string(t))
はステップ t をカウントしてるだけです。
これで計算がきちんと回っているか一応モニターできます
Cir 2t
Cir 2t 2021년 3월 6일
ありがとうございます。
メモリですか。
どうにか、できないか調べてみます

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

OH
OH 2021년 3월 5일
この分野には詳しくないのですが、
フリーズはPCのハードウェア的な問題かと思われます。(メモリー不足等)
CCCM_2021.mの最後の行にendを足して、script_CCCM2021.mで使われているode45()の引数であるtspanを短くすることでプログラム回りました。
ですが、時間はかなりかかりそうですね。matlabのプロファイラを見る限り変数の事前割り当て等、プログラムの最適化が必要だと思います。
  댓글 수: 1
Cir 2t
Cir 2t 2021년 3월 6일
ありがとうございます。

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 プログラミング에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!