获取自动保存的matlab图上的图数

时间:2013-10-12 12:17:55

标签: matlab plot graphic axes

让我们认为我们有一个数字;

figure(1),plot(1:10);hold on;plot(2:2:45)

并保存此图。当我以*。* fig格式打开它时,我想从图(1)中获取信息。在图1上有2个图,但我想自动得到它。

1 个答案:

答案 0 :(得分:2)

您可以使用

之类的命令
numplots =  numel(get(gca,'Children'))

或者如果您正在寻找多少行:

numlines = numel(findobj(gcf,'Type','line'))

例如,执行此操作的函数可以是:

function NumSons = sons_of_figure
[filename,pathname]=uigetfile('*.fig','Select File to Open');
        if isequal(filename,0) || isequal(pathname,0)
            return
        else
            open(fullfile(pathname,filename));
            NumSons = numel(get(gca,'Children'));
        end
end

要更改您需要知道(或找到)其句柄的线条的颜色。在您的示例中,您可以在每行关联名称:

figure(1),plot(1:10,'DisplayName','one');hold on;plot(2:2:45,'DisplayName','two')

然后保存并加载数字。如果要将名为“one”的第一行的颜色更改为红色:

line1 = findobj(gcf,'DisplayName','one')%line1 is the handle to the line you want
set(line1,'color','r')