0

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

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

并保存这个数字。当我以 *.*fig 格式打开它时,我想从图(1)中获取信息,上面有多少图。图 1 上有 2 个图,但我想自动获得它。

4

1 回答 1

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')
于 2013-10-12T12:33:17.023 回答