保存图形后重用线对象
Reusing Line-Objects after saving a figure
有没有办法在保存图形后重新使用线对象来指定新属性?
例如我定义这个:
figure;
hold on;
line1 = line(linspace(0,2*pi,1000),sin(linspace(0,2*pi,1000)));
现在我将其保存为 Sinus.fig
,稍后打开它时,我希望能够执行类似 set(line1,'LineWidth',2);
的操作。有没有办法实现这一点,或者通常在保存后更改数字?提前致谢!
您可以使用 findobj 从打开的图形中提取特定对象。在你的情况下,你想要类似的东西。
line1=getobject(gca, 'Type', 'line');
如果图中有多行,请小心,因为这会将它们全部提取出来。如果这是一个问题,您可以只向 select 您想要的参数添加额外的参数,或者稍后使用行属性将它们分开。
你在图中嵌入的appdata
也随之保存。这意味着您可以使用 guidata
功能保存所有图形句柄,然后将它们保存 和 图形。
稍后加载时,它们将与图一起使用。
例子:
生成图形和图形对象,保存所有需要重新使用的句柄:
%% // Generate figure and retrieve handles of graphic objects
h.fig = figure;
hold on;
h.line1 = line(linspace(0,2*pi,1000),sin(linspace(0,2*pi,1000)));
我们在结构中有h
:
>> h
h =
fig: [1x1 Figure]
line1: [1x1 Line]
现在让我们将h
嵌入到图中然后保存:
%% // Save
guidata( h.fig , h ) %// Save the handle information in the figure
saveas(h.fig,'sinus.fig') %// Save the figure into file
clear all %// clear workspace
现在我们可以随时重新加载图形,结构 h
在图形的应用程序数据中仍然可用(可使用相同的 guidata
函数访问):
%% // Now re-open and load
f1 = openfig('C:\TEMP\sinus.fig') ; %// open the figure and retrieve the handle
h = guidata(f1) ; %// retrieve the full handle structure saved
set(h.line1,'LineWidth',2); %// do what you want with your line/objects handles ;-)
请注意,您还可以使用 setappdata
and getappdata
来保存您认为对图形有用的任何变量。查看他们的文档以获取更多信息。
有没有办法在保存图形后重新使用线对象来指定新属性? 例如我定义这个:
figure;
hold on;
line1 = line(linspace(0,2*pi,1000),sin(linspace(0,2*pi,1000)));
现在我将其保存为 Sinus.fig
,稍后打开它时,我希望能够执行类似 set(line1,'LineWidth',2);
的操作。有没有办法实现这一点,或者通常在保存后更改数字?提前致谢!
您可以使用 findobj 从打开的图形中提取特定对象。在你的情况下,你想要类似的东西。
line1=getobject(gca, 'Type', 'line');
如果图中有多行,请小心,因为这会将它们全部提取出来。如果这是一个问题,您可以只向 select 您想要的参数添加额外的参数,或者稍后使用行属性将它们分开。
你在图中嵌入的appdata
也随之保存。这意味着您可以使用 guidata
功能保存所有图形句柄,然后将它们保存 和 图形。
稍后加载时,它们将与图一起使用。
例子: 生成图形和图形对象,保存所有需要重新使用的句柄:
%% // Generate figure and retrieve handles of graphic objects
h.fig = figure;
hold on;
h.line1 = line(linspace(0,2*pi,1000),sin(linspace(0,2*pi,1000)));
我们在结构中有h
:
>> h
h =
fig: [1x1 Figure]
line1: [1x1 Line]
现在让我们将h
嵌入到图中然后保存:
%% // Save
guidata( h.fig , h ) %// Save the handle information in the figure
saveas(h.fig,'sinus.fig') %// Save the figure into file
clear all %// clear workspace
现在我们可以随时重新加载图形,结构 h
在图形的应用程序数据中仍然可用(可使用相同的 guidata
函数访问):
%% // Now re-open and load
f1 = openfig('C:\TEMP\sinus.fig') ; %// open the figure and retrieve the handle
h = guidata(f1) ; %// retrieve the full handle structure saved
set(h.line1,'LineWidth',2); %// do what you want with your line/objects handles ;-)
请注意,您还可以使用 setappdata
and getappdata
来保存您认为对图形有用的任何变量。查看他们的文档以获取更多信息。