一連のデータの分布を 3D 散布図にプロットしました。
h = scatter3(D1,D2,D3,'.');
保存h
しましたが、グラフを再現する必要があります。h
D1、D2、D3 を再計算せずにグラフを取得するには、どの関数を呼び出す必要がありますか? D1、D2、D3 の再計算には計算コストがかかるため、グラフが必要なときに毎回実行したくありません。
一連のデータの分布を 3D 散布図にプロットしました。
h = scatter3(D1,D2,D3,'.');
保存h
しましたが、グラフを再現する必要があります。h
D1、D2、D3 を再計算せずにグラフを取得するには、どの関数を呼び出す必要がありますか? D1、D2、D3 の再計算には計算コストがかかるため、グラフが必要なときに毎回実行したくありません。
「グラフの再作成」は、次の情報があれば実行できます。
グラフ (または図) の「ハンドル」は、すべての情報が格納されているメモリを指しますが、それは単なるポインタです。「指し示すもの」を保存しなければ意味がありません。1 つのコマンドでこれを実現する非常に優れた方法があります。Figure を作成したら、次のように入力するだけです。
saveas(gcf, 'myLastGraph.m', 'm');
(「現在の図を取得」 - 最近選択した図のハンドル)の代わりに、gcf
保存したいグラフのハンドル (まだ表示されている必要があります) を使用できます (h
コード サンプルなど)。これにより、現在のディレクトリに 2 つのファイルが作成されます (2 番目の引数にフル パスを指定すると、代わりにそのディレクトリにファイルが作成されます)。
myLastGraph.fig
myLastGraph.m
これで、すべてのグラフを閉じて、すべての変数をクリアできます。次に、単に実行できます
myLastGraph
コマンド ラインから - ディスクに保存されたデータを使用して、グラフが再作成されます。
グラフがまだ開いている場合は、次を使用して Xdata、Ydata、および Zdata を取得できます。
XYZCell=get(get(get(h,'currentaxes'),'children'),{'xdata','ydata','zdata'});
または、セルが必要ない場合:
XData=get(get(get(gcf,'currentaxes'),'children'),'xdata');
YData=get(get(get(gcf,'currentaxes'),'children'),'ydata');
ZData=get(get(get(gcf,'currentaxes'),'children'),'zdata');
グラフが閉じている場合、h
役に立たない - 私の知る限り、閉じた図ハンドルからグラフを再形成する方法はありません。
最初に変数を保存しないのはなぜですか?
I1=d1;
I2=d2;
I3=d3;
scatter3(d1,d2,d3,'.');