Все, что я хочу сделать, это сделать ширину больше, а высоту меньше. Я просто делаю растровые графики, но этот вопрос относится к любому MATLAB figure
. Я могу вручную изменить его размер, используя фигуру непосредственно при ее создании, но я хочу, чтобы программа выплюнула его в нужном размере для начала.
91
set
?saveas(gcf, file, 'png')
Вместо этого As использует размеры по умолчанию.Напишите это как однострочное :
figure('position', [0, 0, 200, 500]) % create new figure with specified size
источник
figure (1) hFig = figure(1); set(gcf,'PaperPositionMode','auto') set(hFig, 'Position', [0 0 xwidth ywidth]) plot(x,y) print -depsc2 correlation.eps; % for saving in eps, look up options for saving as png or other formats you may need
Это сохраняет фигуру в указанных размерах.
источник
Мне удалось получить хороший результат со следующей последовательностью (дважды запустить Matlab в начале):
h = gcf; % Current figure handle set(h,'Resize','off'); set(h,'PaperPositionMode','manual'); set(h,'PaperPosition',[0 0 9 6]); set(h,'PaperUnits','centimeters'); set(h,'PaperSize',[9 6]); % IEEE columnwidth = 9cm set(h,'Position',[0 0 9 6]); % xpos, ypos must be set txlabel = text(xpos,ypos,'$$[\mathrm{min}]$$','Interpreter','latex','FontSize',9); % Dump colored encapsulated PostScript print('-depsc2','-loose', 'signals');
источник
Другой подход.
При
figure()
вызове укажите свойства или измените свойства ручки фигуры послеh = figure()
.Это создает полноэкранный рисунок на основе нормализованных единиц.
figure('units','normalized','outerposition',[0 0 1 1])
units
Свойство может быть отрегулировано в дюймы, сантиметры, пиксели и т.д.См.
figure
Документацию .источник