matlab 怎么读取多个.fig 在一张图里显示

2024-12-26 11:52:46
推荐回答(2个)
回答1:

试试 copyobj() 函数。
例如,把'fig1.fig'文件中的曲线做到另外一个figure中的subplot(3,4,1)中,可以运行如下程序:
clear
h0=figure; % 新建figure, 返回figure handle
hf=open('fig1.fig'); % 打开fig1.fig
h=findobj(hf);
figure(h0);hs=subplot(3,4,1); %给出作图位置为subplot(3,4,n), 这里n=1;
copyobj(h(3:end),hs) %复制原曲线
close(hf) % 关闭‘fig1.fig’

如果文件名命名有规律,如'fig1.fig', 'fig2.fig', 'fig3.fig',..., 通过一个简单的for循环即可实现多个图像文件的复制。如:
clear
h0=figure; % 新建figure, 返回figure handle
for it = 1:12
hf=open(['fig',num2str(it),'.fig']); % 打开fig1.fig
h=findobj(hf);
figure(h0);hs=subplot(3,4,it); %给出作图位置为subplot(3,4,n), 这里n=1;
copyobj(h(3:end),hs) %复制原曲线
close(hf) % 关闭‘fig1.fig’
end

另外,问题中提到“每个里面都有好多东西”——这句话的外延太大,我无法考虑所有情形。
这个小程序只可以复制figure中的数值曲线。

回答2:

跟楼主一样的问题,我现在已经解决了,只靠鼠标,需要新建一个图形,然后在最右边有个可以选择n*m的地方,选好了之后依次点击小格子然后打开你想放进去的图形,再点右侧就放进去了. 注意打开文件的时候看似只有单个窗口,但是一点最右边就能放进去.