существует ли способ присвоить 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
конец
Спасибо
Если вы захватываете дескриптор фигуры при создании фигуры
figH = figure;
Вы можете назначать свойства в любое время, когда захотите
set(figH,'OuterPosition',[scrsz(1),scrsz(2),700,700]);
Вы также можете собрать ручки фигуры внутри вектора, а затем установить все размеры сразу.
Если вы не можете захватить дескриптор фигуры по какой-либо причине, вы можете использовать findall
, чтобы найти фигуру с определенным именем, или gcf
, чтобы получить дескриптор текущего ( последний выбранный / открытый) рисунок.
Вот несколько предложений / исправлений:
Ваш второй цикл 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]);
Тогда вы должны открывать только одну фигурку за раз.