6

これは些細な解決策では問題になるはずですが、それでも私はそれを見つけることができませんでした。

同じプロットウィンドウにロードして表示したいMATLABフィギュアが2つfig1.figあるとします。fig2.fig

私は何をすべきか?

つまり、1つの画像からコンテンツを抽出して2番目の画像に配置する、低レベルのグラフィックコマンドを使用してタスクを実行できると確信していますが、高レベルの機能がないことは信じられません(load fig2 on top of fig1)それはこれを行います...2つのプロット(残念ながらすでに保存されています)を比較することは非常に一般的なタスクだと思います。

4

3 に答える 3

18

図からデータを抽出してデータを比較するのか、2つの図のプロットを1つの図に結合するのかは明確ではありません。

2つの図を1つに組み合わせる方法は次のとおりです(それが必要な場合)。

最初に図をロードします。

fig1 = open('FigureFile1.fig');
fig2 = open('FigureFile2.fig');

図からAxesオブジェクトを取得します

ax1 = get(fig1, 'Children');
ax2 = get(fig2, 'Children');

次に、ハングルグラフィックスオブジェクトをからax2にコピーしax1ます。フィギュアの軸が1つしかない場合は、ループは必要ありません。

for i = 1 : numel(ax2) 
   ax2Children = get(ax2(i),'Children');
   copyobj(ax2Children, ax1(i));
end

この例では、図の軸の数が同じであり、オブジェクトを2番目の図の最初の軸から最初の図の最初の軸にコピーすることを前提としています。軸のインデックスが揃っていない場合は、適切なインデックスを作成するのはあなた次第です。

于 2012-11-07T18:54:02.793 に答える
9

slaytonが与えた答えは良いです。もう1つのヒントは次のとおりです。2つの別々のMatlabフィギュアウィンドウで2つのプロットを開いている場合は、適切なプロットをポイントアンドクリックでコピーできることを忘れないでください。これを行うには、MatlabのFigureウィンドウで矢印ポインターをクリックしてから、プロットされた線をクリックします。(プロットされた行、テキストボックスなど)オブジェクトをコピーします。次に、他のMatlabFigureウィンドウで同様に軸を選択して貼り付けます。

この「ばかげた」ソリューションは、コラボレーション会議で役立つことが証明されているためです。誰か(アドバイザーなど)の前でポイントアンドクリックでコピーすると、比較されている曲線が正確に伝わり、他の人の前でコードを起動する必要がなくなります。

于 2012-11-07T19:11:52.093 に答える
2

プロットごとに、メニューの[ファイル]の[コードの生成]に移動することもできます。次に、両方を同じmfileにコピーして貼り付けます。その間に「保留」を入れ、外観に関連する詳細を変更します。次に、新しいmファイルを実行します。

于 2014-01-01T21:40:13.807 に答える