Присвоение размера числа числу с данным дескриптором (MATLAB)

существует ли способ присвоить outerposition свойство числа числу с данным дескриптором?

Например, если бы я хотел определить число, как говорят, что рисунок 1, я использовал бы:

 figure(1)
 imagesc(Arrayname) % I.e. any array

Я могу также изменить свойства числа, использующего код:

figure('Name', 'Name of figure','NumberTitle','off','OuterPosition',[scrsz(1) scrsz(2) 700 700]);

Существует ли propertyname, который я могу использовать для присвоения outerposition свойства числу, назначенному рисунком 1?

Причина я спрашиваю это, состоит в том, потому что я использую команду, названную save2word (от обмена файлами MATLAB) для сохранения некоторых графиков от функции, которую я сделал в файл слова, и я хочу ограничить количество чисел, которые я имею открытый, поскольку это делает это.

Остальная часть кода, который я имею:

plottedloops = [1, 5:5:100]; % Specifies which loops I want to save


GetGeometry = getappdata(0, 'GeometryAtEachLoop') % Obtains a 4D array containing geometry information at each loop


NumSections = size(GetGeometry,4); %Defined by the fourth dimension of the 4D array

for j = 1:NumSections
    for  i = 1:plottedloops
    P = GetGeometry(:,:,i,j);

    TitleSize = 14;
    Fsize = 8;
    % Save Geometry

    scrsz = get(0,'ScreenSize'); %left, bottom, width height   


  figure('Name', 'Geometry at each loop','NumberTitle','off','OuterPosition',[scrsz(1) scrsz(2) 700 700]); This specifies the figure name, dims etc., but also means multiple figures are opened as the command runs.

% I have tried this, but it doesn't work:
% figure(0, 'OuterPosition',[scrsz(1) scrsz(2) 700 700]);

    imagesc(P), title('Geometry','FontSize', TitleSize), axis([0 100 0 100]);

    text(20,110,['Loop:',num2str(i)], 'FontSize', TitleSize); % Show loop in figure
    text(70,110,['Section:',num2str(j)], 'FontSize', TitleSize);% Show Section number in figure

    save2word('Geometry at each loop'); % Saves figure to a word file

end

конец

Спасибо

5
задан James 7 April 2010 в 14:15
поделиться

2 ответа

Если вы захватываете дескриптор фигуры при создании фигуры

figH = figure;

Вы можете назначать свойства в любое время, когда захотите

set(figH,'OuterPosition',[scrsz(1),scrsz(2),700,700]);

Вы также можете собрать ручки фигуры внутри вектора, а затем установить все размеры сразу.

Если вы не можете захватить дескриптор фигуры по какой-либо причине, вы можете использовать findall , чтобы найти фигуру с определенным именем, или gcf , чтобы получить дескриптор текущего ( последний выбранный / открытый) рисунок.

3
ответ дан 15 December 2019 в 06:21
поделиться

Вот несколько предложений / исправлений:

  • Ваш второй цикл for должен выглядеть следующим образом:

     for i = plottedloops 
     

    Это потому, что plottedloops равно уже массив, и вы хотите, чтобы i принимал каждое последовательное значение в массиве при каждом проходе через цикл. Например, обычная форма для цикла for :

     for i = 1: someScalarValue 
     

    Где термин 1: someScalarValue создает массив для вас.

  • Похоже, вы хотите построить что-то в окне рисунка, затем сохранить его с помощью save2word , затем построить что-то еще, затем сохранить это и т. Д. Поэтому я предлагаю создать окно рисунка ] вне ваших циклов for, и просто переназначение содержимого окна внутри цикла. Если вы переместите эти две строки за пределы ваших циклов:

     scrsz = get (0, 'ScreenSize'); % left, bottom, width height 
    figure ('Имя', 'Геометрия в каждом цикле', 'NumberTitle', 'off', ... 
     'OuterPosition', [scrsz (1) scrsz (2) 700 700]); 
     

    Тогда вы должны открывать только одну фигурку за раз.

0
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: