在保存图形后,是否有重用线条对象来指定新属性的方法? 比如我定义的:保存图形后重用线条对象
figure;
hold on;
line1 = line(linspace(0,2*pi,1000),sin(linspace(0,2*pi,1000)));
现在我将它保存为Sinus.fig
,当我后来打开它,我希望能够像做set(line1,'LineWidth',2);
。有没有办法做到这一点或总体来说,在保存数字后改变数字?提前致谢!
在保存图形后,是否有重用线条对象来指定新属性的方法? 比如我定义的:保存图形后重用线条对象
figure;
hold on;
line1 = line(linspace(0,2*pi,1000),sin(linspace(0,2*pi,1000)));
现在我将它保存为Sinus.fig
,当我后来打开它,我希望能够像做set(line1,'LineWidth',2);
。有没有办法做到这一点或总体来说,在保存数字后改变数字?提前致谢!
你在图中嵌入的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
和getappdata
来保存你可能对你的图形有用的变量。查看他们的文档以获取更多信息。
您可以使用findobj从一个开放的数字提取特定对象。在你的情况下,你想要类似的东西。
line1=getobject(gca, 'Type', 'line');
如果图中有多条线,请仔细一点,因为这会将它们全部提取出来。如果这是一个问题,你可以添加额外的参数,只选择你想要的或使用线属性以后分离它们。
如果你这样做,我会建议为每个你想检索的对象分配一个唯一的'标签'。它将使查找所需的对象变得更容易和**毫不含糊**。要分配一个标签,只需设置对象的Tag属性,稍后可以使用:'line1 = getobject(gcf,'Tag','TheCustomTagDefinedForThisObject');' – Hoki