如何向MATLAB figure添加元数据?

如何向MATLAB figure添加元数据?,matlab,metadata,matlab-figure,Matlab,Metadata,Matlab Figure,通过总结不同测量的大量数据,我在MATLAB中创建了数字。我想为这些数字添加元数据 元数据可以是代码版本和有关度量的信息。一种选择是在图中简单地添加这些信息作为文本,但这会分散注意力,而且信息可能是大量文本。另一种方法是将自述文件添加到包含图形的文件夹中,但是该文件可能会丢失 是否有办法将此元数据直接附加到MATLAB图形?我希望在MATLAB中打开图形时可以访问数据,而不会分散图形内容的注意力。您可以通过使用图形的UserData属性轻松完成此操作,您可以在其中存储所有“元数据” 在以下示例中

通过总结不同测量的大量数据,我在MATLAB中创建了数字。我想为这些数字添加元数据

元数据可以是代码版本和有关度量的信息。一种选择是在图中简单地添加这些信息作为文本,但这会分散注意力,而且信息可能是大量文本。另一种方法是将自述文件添加到包含图形的文件夹中,但是该文件可能会丢失


是否有办法将此元数据直接附加到MATLAB图形?我希望在MATLAB中打开图形时可以访问数据,而不会分散图形内容的注意力。

您可以通过使用图形的
UserData
属性轻松完成此操作,您可以在其中存储所有“元数据”

在以下示例中,在地物中添加了一个绘图,用于绘图的数据保存在地物特性中

您可以通过在示例中添加用于检索元数据的按钮来改进示例

% Create a Figure
my_fig=figure
% Define some data
t=0:.01:360;
y=sind(t);
% Plot data
plot(t,y);
grid minor

% Create a struct in which to store the data
metadata_struct.version=1.3
metadata_struct.t_values=t
metadata_struct.y_values=y

% Assign the struct with the metadata to the "UserData" property
my_fig.UserData=metadata_struct
% Save the Figure
savefig(gcf,'my_fig_with_metadata.fig')

% Open the Figure
fig=openfig('my_fig_with_metadata.fig')
% Get the Metadata
fig_metadata=fig.UserData
% Use use the MEtadata
fig_metadata.version
如果您的图形实际上是一个GUI,您可以添加一个文本字段,在其中显示元数据

% Create a Figure
my_fig=figure
% Define some data
t=0:.01:360;
y=sind(t);
% Plot data
plot(t,y);
grid minor

% Create a struct in which to store the data
metadata_struct.version=1.3
metadata_struct.t_values=t
metadata_struct.y_values=y

% Assign the struct with the metadata to the "UserData" property
my_fig.UserData=metadata_struct
% Save the Figure
savefig(gcf,'my_fig_with_metadata.fig')

% Open the Figure
fig=openfig('my_fig_with_metadata.fig')
% Get the Metadata
fig_metadata=fig.UserData
% Use use the MEtadata
fig_metadata.version

这正是我想要的。可以将数据添加为结构非常好,因为这样可以最大限度地减少对我要添加的信息的限制。