Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中克隆图形-带有属性和数据_Matlab - Fatal编程技术网

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

在Matlab中克隆图形-带有属性和数据,matlab,Matlab,我用matlab编写了一个脚本,它生成一组数据 这些图形在格式化方面应该非常相似,并且每个图形都应该显示一组数据(它是嵌入在3d域中的图形)。此外,这些图形中的每一个都应该显示该3d域中的一组粒子 所以我想创建第一个图形,然后复制几份,然后放入数据集。然而,我不知道如何在Matlab中以简单的方式创建图形的克隆 你知道吗,我怎样才能复制数字 在线文档没有帮助。多谢各位 您可以将用于生成基础地物的代码放入一个函数中,然后多次调用该函数以创建基础地物的多个副本。您需要将这些地物(可能还有它们的轴)的

我用matlab编写了一个脚本,它生成一组数据

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

所以我想创建第一个图形,然后复制几份,然后放入数据集。然而,我不知道如何在Matlab中以简单的方式创建图形的克隆

你知道吗,我怎样才能复制数字


在线文档没有帮助。多谢各位

您可以将用于生成基础地物的代码放入一个函数中,然后多次调用该函数以创建基础地物的多个副本。您需要将这些地物(可能还有它们的轴)的返回作为该函数的输出,以便使用不同的打印数据集修改每个地物。例如,此函数使一个500×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
将上述函数保存到您的上,您可以通过使用同一组输入数据调用
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));

MATLAB的内置函数也应该可以工作。下面是一个例子:

peaks;
f2=copyobj(gcf,0);

生成设置所有参数的函数的一种方便方法是,使用所有数据(包括3D点)和所有格式创建第一个图形,然后从“文件”菜单中选择命令(查看此处链接的教程)

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