MATLAB の図からデータを抽出​するにはどうすればよ​いですか?

173 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2024 年 9 月 18 日
編集済み: MathWorks Support Team 2024 年 9 月 30 日
いくつかの MATLAB の図がありますが、それに関連する MATLAB コードはありません。図の中の曲線からデータを抽出したいです。

採用された回答

MathWorks Support Team
MathWorks Support Team 2024 年 11 月 13 日
この例では、MATLAB の図からデータを抽出する方法を説明します。図がファイル(例えば、'example.fig')として保存されている場合は、'openfig'を使用して図ファイルを開き、Figure オブジェクトを変数'fig'に割り当てます。
fig = openfig('example.fig');
図がすでに開いている場合は、'gcf'を使って Figure オブジェクトにアクセスし、それを変数'fig'に割り当てます。
fig = gcf;
プロットされたグラフィックスオブジェクトのデータにアクセスする方法はいくつかあります。Children プロパティを使用するか、'findobj'を使うことができます。
Childrenプロパティを使用する方法
Children プロパティを通じてプロットされたグラフィックスオブジェクトにアクセスします。Axes オブジェクトは Figure の子であり、プロットされたグラフィックスオブジェクトは通常、Axes オブジェクトの子です。
axObjs = fig.Children; dataObjs = axObjs.Children;
コマンドウィンドウに表示される'dataObjs'配列は、軸内のグラフィックスオブジェクトの種類を示します。異なるグラフィックスオブジェクトは異なる方法でデータを格納します。例えば、Lineオブジェクトはデータを'XData'、'YData'、および'ZData'プロパティに格納します。'dataObjs'の最初の要素がLineオブジェクトである場合、そのデータに次のコードでアクセスします。
x = dataObjs(1).XData; y = dataObjs(1).YData; z = dataObjs(1).ZData;
図に他の種類のグラフィックスオブジェクトが含まれている場合は、適切なプロパティを使用してデータにアクセスしてください。グラフィックスオブジェクトとそのプロパティの一覧については、以下のリンクを参照してください: グラフィックスオブジェクトのプロパティ
findobj関数を使用する方法
また、特定のデータプロパティを持つ図内のすべてのグラフィックスオブジェクトを見つけることもできます。例えば、'YData'プロパティを持つすべてのグラフィックスオブジェクトを見つけ、最初のオブジェクトの'YData'値にアクセスします。
dataObjs = findobj(fig,'-property','YData'); y1 = dataObjs(1).YData;

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeグラフィックス オブジェクトの識別 についてさらに検索

タグ

タグが未入力です。

製品

Community Treasure Hunt

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

Start Hunting!