在Matlab中克隆图 - 具有属性和数据

时间:2010-09-09 15:03:32

标签: matlab

我在matlab中编写了一个脚本,它会生成一组数据。

这些数字在格式化方面应该非常相似,并且它们中的每一个都应该显示一组数据(它是嵌入在3d域中的图形)。这些图中的每一个都应该在该3d域内显示一组粒子。

所以我想创建第一个数字,然后制作它的几个副本,并放入数据集。但是,我不知道,我怎样才能以简单的方式在Matlab中创建一个人物克隆。

你知道吗,我怎么能克隆数字?

在线文档没有帮助。非常感谢你!

3 个答案:

答案 0 :(得分:17)

MATLAB的内置函数copyobj也应该有效。这是一个例子:

peaks;
f2=copyobj(gcf,0);

答案 1 :(得分:3)

您可以将用于生成基本图形的代码放入函数中,然后多次调用该函数以创建基本图形的多个副本。您需要将这些数字(可能还有它们的轴)的graphics handles作为函数的输出返回,以便使用不同的绘制数据集修改每个数字。例如,此功能使500 x 500像素的数字位于屏幕左下角100像素的红色背景和一个轴上,并在其上绘制一组给定的输入数据:

function [hFigure,hAxes] = make_my_figure(dataX,dataY)
  hFigure = figure('Color','r','Position',[100 100 500 500]);  %# Make figure
  hAxes = axes('Parent',hFigure);                              %# Make axes
  plot(hAxes,dataX,dataY);  %# Plot the data
  hold(hAxes,'on');         %# Subsequent plots won't replace existing data
end

将上述功能保存到m-file上的MATLAB path,您可以使用相同的输入数据集调用make_my_figure三次并存储处理它在单独的变量中返回:

x = rand(1,100);
y = rand(1,100);
[hFigure1,hAxes1] = make_my_figure(x,y);
[hFigure2,hAxes2] = make_my_figure(x,y);
[hFigure3,hAxes3] = make_my_figure(x,y);

您可以将数据添加到第二个数字的轴中,如下所示:

plot(hAxes2,rand(1,100),rand(1,100));

答案 2 :(得分:2)

一种生成函数的简便方法,该函数设置所有参数,使得图形(如@gnovice的帖子中)看起来恰到好处就是创建包含所有数据的第一个数字(包括3D点) )和所有格式,然后从文件菜单中选择命令GENERATE M-FILE...(看看这里链接的教程)。

这将创建一个可以保存在Matlab路径上的函数,稍后您可以使用新输入调用该函数,以使用新数据创建第一个图形的精确克隆。