В MATLAB-функции я пишу, я генерирую цифру. Эта цифра отображается, когда функция выполняется. Мне нужно сохранить фигуру как изображение в формате JPEG. Для этого я мог бы сделать File- > Save As в окне рисунка, в котором отображается рисунок. Но я бы хотел автоматизировать это. Я попытался сделать это, используя функцию saveas(). Проблема в том, что результирующее изображение нежелательно. Вот изображения для демонстрационной проблемы, чтобы показать вам, что я имею в виду:
JPEG-изображение сохранено вручную с помощью File- > Save As в окне фигуры MATLAB:
JPEG-изображение, сохраненное с помощью функции saveas() (обратите внимание, что графики не так хороши, а заголовки перекрываются):
Вот функция MATLAB, в которой я создаю фигуру и сохраняю фигуру как JPEG, используя saveas():
function JpgSaveIssueDemo( )
figure( 1 );
t = 0:0.1:8;
subplot( 2, 2, 1 );
plot( t, sin(t) );
title( 'Plot 1 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
subplot( 2, 2, 2 );
plot( t, sin(t) );
title( 'Plot 2 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
subplot( 2, 2, 3 );
plot( t, sin(t) );
title( 'Plot 3 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
subplot( 2, 2, 4 );
plot( t, sin(t) );
title( 'Plot 4 of Example to Demonstrate JPG Save Issue', 'FontSize', 18 );
saveas( gcf, 'DemoPlot', 'jpg' );
end
Показатель, отображаемый при выполнении JpgSaveIssueDemo(), не максимизируется. Итак, я подумал, что если бы я мог максимизировать его с помощью вызова функции /s в JpgSaveIssueDemo() до выполнения функции saveas(), то сохраненное изображение JPEG получилось бы хорошо.
Итак, я использовал этот код перед строкой saveas() в JpgSaveIssueDemo(), чтобы максимизировать цифру:
drawnow;
jFrame = get(handle(gcf),'JavaFrame');
jFrame.setMaximized(true);
Затем отображаемая фигура максимизируется. Однако результат тот же: изображение JPEG по-прежнему выходит нежелательно.
Что можно сделать для этого?