Borrar filtros
Borrar filtros

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

30 visualizaciones (últimos 30 días)
MathWorks Support Team
MathWorks Support Team el 18 de Sept. de 2024 a las 0:00
Editada: MathWorks Support Team el 30 de Sept. de 2024 a las 2:59
いくつかの MATLAB の図がありますが、それに関連する MATLAB コードはありません。図の中の曲線からデータを抽出したいです。

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 30 de Sept. de 2024 a las 0:00
この例では、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;

Más respuestas (0)

Categorías

Más información sobre ビッグ データの処理 en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Productos

Community Treasure Hunt

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

Start Hunting!