2011-03-03 11 views
74

Todo lo que quiero hacer es hacer la mayor anchura y la altura más pequeña. Solo estoy haciendo tramas ráster, pero esta pregunta se aplica a cualquier MATLAB figure. Puedo cambiar el tamaño manualmente usando la figura directamente cuando se crea, pero quiero que el programa la escupe en el tamaño correcto para comenzar.Localización de la figura gráfica

Respuesta

78

This posiblemente podría ayudar?

hFig = figure(1); 
set(hFig, 'Position', [x y width height]) 
+0

Bien encontrado, no vi eso :). Gracias. – ale

+11

¿Y cómo se puede guardar la figura con las mismas dimensiones definidas por 'set'? Como 'saveas (gcf, file, 'png')' utiliza las dimensiones predeterminadas en su lugar. –

+0

@ IstvánZachar ver https://stackoverflow.com/questions/3600945/printing-a-matlab-plot-in-exact-dimensions-on-paper/3601094#3601094 –

28
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 

Esto ahorra la figura en las dimensiones especificadas

+6

1 para el 'PaperPositionMode' es necesario de ustedes quiere 'imprimir' (exportar) la figura. – Ali

50

escribo como un de una sola línea:

figure('position', [0, 0, 200, 500]) % create new figure with specified size 

enter image description here

1

Logré obtener un buen resultado con la siguiente secuencia (ejecute Matlab dos veces al principio):

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');