ライブスクリプトで一​度生成したプロットを​再度プロットする方法

11 次查看(过去 30 天)
Yuki Koyama
Yuki Koyama 2020-5-13
たとえば,
fig=plot(1:10)
とプロットすればライブスクリプト上でプロットされます.(figに代入する必要はないですが)
ここで同じものをもう一度プロットする最も単純な方法はもう一度同じコードを入力することですが,
これよりコードの多い複雑なプロットの場合,コードの幅を取るので美しくありません.
たとえばここで変数figを用いて再度プロットできないでしょうか?
figにはプロットのためのデータが揃っているためできると考えたのですが,実際に行う方法が見つかりませんでした.
あるいは,figを用いて簡単に再度プロットできないとしたら,他に簡単な方法があれば教えて頂きたいです.

回答(1 个)

Shunichi Kusano
Shunichi Kusano 2020-5-13
copyobj関数が使えそうです。
  2 个评论
Yuki Koyama
Yuki Koyama 2020-5-14
参照していただいたドキュメンテーションのように,追加のコードを設定しなければ,figureを再生成することは今の所できないということでしょうか?
Shunichi Kusano
Shunichi Kusano 2020-5-18
返事が遅くなりすみません。
追加のコードは必要になるかと思います。ご参考までに下記にサンプルコードを載せます。
close all
%% コピー元となるグラフィックオブジェクトの作成
fig = figure;
plot(1:300,[1:300]*0.01); % オブジェクト1
hold on;
plot(1:300,sin([1:300]*0.1),'r.'); % オブジェクト2
%% 新しいfigureにコピーして表示
ax = gca; % コピー元のaxis
newfig = figure; % コピー先のfigureウィンドウ
new_ax = axes; % コピー先のaxis
for i = 1:numel(ax.Children)
copyobj(ax.Children(i), new_ax); % コピー
end

请先登录,再进行评论。

标签

产品

Community Treasure Hunt

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

Start Hunting!