意図しないグラフがプロットされる→重くなる

조회 수: 12 (최근 30일)
nobuki kishi
nobuki kishi 2020년 1월 25일
댓글: michio 2020년 1월 25일
最近プロットで出力しているグラフが重く,違和感を感じていたのですが,グラフをよく見てみるとコードで書いた覚えのないグラフが出力されていることに気づきました.
少し前までは無かった現象で,全てのfigureに同じグラフが出力されます.
一見,y=0のようなグラフです.
保存したpngファイルを2枚添付します.
次にグラフ出力の際のコードを引用します.
質問:
・このような意図していないグラフが出力されるといった現象は起こりうるのでしょうか.
・原因としてどのようなことが考えられるでしょうか.
動作が重く,また余計なグラフが表示されて困っています.どうかご回答よろしくお願いします.
Faero_drag_n_CLL.png
Faero_drag_n_dif.png
if SET.is_graphout_ana_Lift_dif == 1
h = figure;
plot(0:(ins.data_num-1), ins.Faero_n_drag_dif);
legend('Drag');
ylim([0 1e-5]);
xlabel('Time [s]');
ylabel('Drag Force [N]');
title({'Aerodynamic Drag and Lift Force Norm [N]', ' by Diffuse Model'});
if save_flag == 1
saveas(h, strcat(save_path_tmp, 'png\Faero_drag_n_dif.png'));
saveas(h, strcat(save_path_tmp, 'emf\Faero_drag_n_dif.emf'));
saveas(h, strcat(save_path_tmp, 'fig\Faero_drag_n_dif.fig'));
end
h = figure;
plot(0:(ins.data_num-1), ins.Faero_n_lift_dif);
legend('Lift');
ylim([0 1e-7]);
xlabel('Time [s]');
ylabel('Lift Force [N]');
title({'Aerodynamic Drag and Lift Force Norm [N]', ' by Diffuse Model'});
if save_flag == 1
saveas(h, strcat(save_path_tmp, 'png\Faero_lift_n_7_dif.png'));
saveas(h, strcat(save_path_tmp, 'emf\Faero_lift_n_7_dif.emf'));
saveas(h, strcat(save_path_tmp, 'fig\Faero_lift_n_7_dif.fig'));
end
end

채택된 답변

michio
michio 2020년 1월 25일
奇妙ですね・・私であればグラフ描画関係のコマンド冒頭にブレークポイントを置いて、1行ずつ実行しながら y=0 の線が描かれるタイミングから探ってみます。。

추가 답변 (1개)

nobuki kishi
nobuki kishi 2020년 1월 25일
解決しました!
配列の事前割り当てのミスでした.
ブレークポイントを置いてデバッグしたところ,plot関数の箇所で出力されていました.
plot関数に与える2つ目の引数の配列のサイズを調べたところ
想定:4804 1
実際:4804 4804
となっており,zerosでの事前割り当てを本来zeros(4804, 1)とするところをzeros(4804)としてしまっていたことが原因でした.
zeros(n)はn*nの配列を作ることを覚えておくべきでした.
ご回答ありがとうございました.
  댓글 수: 1
michio
michio 2020년 1월 25일
詳細にありがとうございました。原因がわかってよかったです!

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

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

제품


릴리스

R2019b

Community Treasure Hunt

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

Start Hunting!