tutorial student requisitos precio online gratis matlab

student - matlab tutorial



Cómo guardar un trazado en un archivo PDF sin un gran margen alrededor de (8)

Esta pregunta ya tiene una respuesta aquí:

Si imprimo un diagrama en formato EPS , el contenido del archivo EPS está completamente ocupado con el diagrama. Pero si imprimo una trama en formato PDF , entonces hay grandes márgenes por encima y por debajo de la trama en el archivo PDF. ¿Cómo puedo guardar un diagrama en un archivo PDF sin el gran margen alrededor de la trama?

Mi suposición es cómo elegir automáticamente el tamaño correcto de "papel" en un archivo PDF para imprimir, de acuerdo con el tamaño de la gráfica.

Esta es una pregunta que hice en tex.stackexchange.com , donde obtuve respuestas que en su mayoría intentaron resolver el problema fuera de MATLAB , y todavía no entiendo muy bien la única respuesta que intentó resolver desde MATLAB. Entonces me gustaría ver si hay más opiniones aquí.


¿A qué te refieres con "el tamaño adecuado"? MATLAB figuras de MATLAB son como gráficos vectoriales, por lo que básicamente puede elegir el tamaño que desee en su trama.

Puede establecer el tamaño del papel y la posición de la figura con la función set .

Ejemplo:

plot(epx(1:5)); set(gcf, ''PaperPosition'', [0 0 5 5]); %Position plot at left hand corner with width 5 and height 5. set(gcf, ''PaperSize'', [5 5]); %Set the paper to have width 5 and height 5. saveas(gcf, ''test'', ''pdf'') %Save figure

El código anterior eliminará la mayoría de los bordes, pero no todos. Esto se debe a que la esquina de la izquierda ( [0 0] en el vector de posición) no es la esquina "verdadera" de la izquierda. Para eliminar más bordes, puede ajustar los vectores PaperPosition y PaperSize .

Ejemplo:

plot(exp(1:5)) set(gcf, ''PaperPosition'', [-0.5 -0.25 6 5.5]); %Position the plot further to the left and down. Extend the plot to fill entire paper. set(gcf, ''PaperSize'', [5 5]); %Keep the same paper size saveas(gcf, ''test'', ''pdf'')


El script en Cómo deshacerse del margen blanco en los saveas o print outputs de MATLAB hace lo que usted desea.

Ajusta los límites de tu figura:

ti = get(gca,''TightInset'') set(gca,''Position'',[ti(1) ti(2) 1-ti(3)-ti(1) 1-ti(4)-ti(2)]);

... si guarda directamente (o imprime), MATLAB aún agregará el molesto espacio en blanco. Para deshacerse de ellos, tenemos que ajustar el "tamaño del papel":

set(gca,''units'',''centimeters'') pos = get(gca,''Position''); ti = get(gca,''TightInset''); set(gcf, ''PaperUnits'',''centimeters''); set(gcf, ''PaperSize'', [pos(3)+ti(1)+ti(3) pos(4)+ti(2)+ti(4)]); set(gcf, ''PaperPositionMode'', ''manual''); set(gcf, ''PaperPosition'',[0 0 pos(3)+ti(1)+ti(3) pos(4)+ti(2)+ti(4)]);


El tamaño de ejes en MATLAB puede ser un poco complicado a veces. Tiene razón al sospechar que las propiedades del tamaño del papel son una parte del problema. Otro es los márgenes automáticos calculados por MATLAB. Afortunadamente, existen propiedades de ejes configurables que le permiten sortear estos márgenes. Puede restablecer los márgenes para que sean lo suficientemente grandes para las etiquetas de los ejes mediante una combinación de las propiedades Position y TightInset que se explican here . Prueba esto:

>> h = figure; >> axes; >> set(h, ''InvertHardcopy'', ''off''); >> saveas(h, ''WithMargins.pdf'');

y obtendrás un PDF que se ve así: pero ahora haz esto:

>> tightInset = get(gca, ''TightInset''); >> position(1) = tightInset(1); >> position(2) = tightInset(2); >> position(3) = 1 - tightInset(1) - tightInset(3); >> position(4) = 1 - tightInset(2) - tightInset(4); >> set(gca, ''Position'', position); >> saveas(h, ''WithoutMargins.pdf'');

y obtendrás:


Esto funciona con fines de visualización:

set(gca(), ''LooseInset'', get(gca(), ''TightInset''));

Debería funcionar para imprimir también.


Guardar en EPS y luego convertir a PDF:

saveas(gcf, ''nombre.eps'', ''eps2c'') system(''epstopdf nombre.eps'') %Needs TeX Live (maybe it works with MiKTeX).

Necesitará algún software que convierta EPS a PDF.


La función export_fig en el intercambio de archivos MATLAB recortará el espacio en blanco alrededor de un archivo PDF / EPS de salida de forma predeterminada cuando exporta una figura.


Me parece que aquí todos los enfoques (soluciones de intercambio de archivos no consideradas) carecen del paso esencial, o finalmente lo conducen a través de algunas soluciones borrosas.

El tamaño de la figura debe ser igual al tamaño del papel y los márgenes blancos han desaparecido.

A = hgload(''myFigure.fig''); % set desired output size set(A, ''Units'',''centimeters'') height = 15; width = 19; % the last two parameters of ''Position'' define the figure size set(A, ''Position'',[25 5 width height],... ''PaperSize'',[width height],... ''PaperPositionMode'',''auto'',... ''InvertHardcopy'', ''off'',... ''Renderer'',''painters''... %recommended if there are no alphamaps ); saveas(A,''printout'',''pdf'')

Le dará una salida en pdf a medida que aparezca su figura, exactamente del tamaño que desea. Si desea hacerlo aún más estricto, puede combinar esta solución con la respuesta de b3 .


system (''/usr/bin/pdfcrop filename.pdf'');