Как сохранить фигуру в MatLab из командной строки?

Есть ли команда в Matlab, которая позволяет сохранить фигуру в fig или JPEG или оба формата автоматически?


person ABC-biophi    schedule 28.08.2012    source источник
comment
на самом деле это мой сюжетный график (x, y, '-bs', 'Ширина линии', 1.4, 'Размер маркера', 10)... держите весь сюжет (Qx, Qy, '-.r *', 'Размер маркера', 8) title('Кривая белковой нити','Размер шрифта',14); legend('Точки P (вход)','Точки Q (выход)','Местоположение','Север'); а хотелось бы сохранить автоматически не дожидаясь появления сюжета! но кажется, что это невозможно, потому что я не могу определить переменную мультикривых на одной и той же фигуре   -  person ABC-biophi    schedule 28.08.2012
comment
Возможный дубликат .. много: Stackoverflow.com/search?q=%5bmatlab%5d+save+ Рисунок.   -  person Gunther Struyf    schedule 28.08.2012


Ответы (7)


Используйте сохранить как:

h=figure;
plot(x,y,'-bs','Linewidth',1.4,'Markersize',10);
% ...
saveas(h,name,'fig')
saveas(h,name,'jpg')

Таким образом, рисунок вычерчивается и автоматически сохраняется в форматах «.jpg» и «.fig». Вам не нужно ждать появления графика и нажимать «сохранить как» в меню. Способ пойти, если вам нужно построить / сэкономить много цифр.

Если вы действительно не хотите, чтобы сюжет появиться (он должен быть загруженным в любом случае, не может избежать этого, а также нечего сохранить), вы можете скрыть это:

h=figure('visible','off')
person Gunther Struyf    schedule 28.08.2012
comment
Я уже пробовал, но выдает эту ошибку??? Ошибка: Файл: CurvePlotter.m Строка: 3 Столбец: 1 Неожиданное выражение MATLAB. это из-за удержания всего внутри моего участка! - person ABC-biophi; 28.08.2012
comment
а что там в строке 3 в этом файле? Вы знаете .. hold all - это команда само по себе, не используйте ее как hold all plot(Qx,Qy,'-.r*','Markersize',8) , а скорее hold all; plot(...) также: научитесь отлаживать - person Gunther Struyf; 28.08.2012

При использовании функции сохранения разрешение не такое хорошее, как при ручном сохранении рисунка с помощью Файл-->Сохранить как.... Более рекомендуется использовать hgexport следующим образом:

hgexport(gcf, 'figure1.jpg', hgexport('factorystyle'), 'Format', 'jpeg');

Это будет делать точно так же, как вручную сохранение фигуры.

Источник: http://www.mathworks.com/support/solutions/en/data/1-pt49c/index.html?product=sl&solution=1-349c

person Avico    schedule 27.07.2013

Я не думаю, что вы можете сохранить его так, чтобы он не отображался, но только для сохранения в нескольких форматах используйте команду print. См. Ответ, размещенный здесь: Сохранить вывод ImageC в MatLab

person Malife    schedule 28.08.2012
comment
Я попробовал это уже, но это показывает эту ошибку ??? Ошибка: Файл: CurvePlotter.m Строка: 3 Столбец: 1 Неожиданное выражение MATLAB. это из-за удержания всего внутри моего участка! - person ABC-biophi; 28.08.2012
comment
@Abdullah Я в замешательстве, так как вы опубликовали один и тот же комментарий к обоим ответам. Вы получаете эту ошибку, используя команду print или используя saveas? Независимо от того, с каким из них вы получаете ошибку, у меня работает этот код: x = 1:100; y = rand(1,100); Qx = x; Qy = rand(1,100); plot(x,y,'-bs','Linewidth',1.4,'Markersize',10) hold all plot(Qx,Qy,'-.r*','Markersize',8) title('Curve of the protein strand','FontSize',14); legend('P Points (Input)','Q points (Output)','Location','North'); print(gcf, '-djpeg99', num2str(1)); hold - person Malife; 28.08.2012
comment
Я буду на этой странице, но я не нашел, как сохранить его в формате .fig mathworks.de/help/techdoc/ref/print.html - person ABC-biophi; 29.08.2012
comment
Ладно, я понял ! plot(x,y,'-bs','Linewidth',1.4,'Markersize',10) содержит все plot(Qx,Qy,'-.r*','Markersize',8) title('Кривая белковая нить','FontSize',14); legend('Точки P (вход)','Точки Q (выход)','Местоположение','Север'); Печать (GCF, '-djpeg99', num2str (1)); сохранить как (gcf, '1'); вы получаете 2 вывода, один как jpg, а другой как .fig, но все же я не понимаю, что означает «gcf» ??? - person ABC-biophi; 29.08.2012

Если вы хотите сохранить его как файл .fig, hgsave — это функция в Matlab R2012a. В более поздних версиях также может работать savefig.

person ssd352    schedule 31.12.2015

imwrite(A,filename) записывает данные изображения A в файл, указанный именем файла, определяя формат файла из расширения

person jeremy_rutman    schedule 12.04.2016

В наши дни (май 2017 года) Matlab по-прежнему страдают от надежного способа экспорта цифр, особенно в системах GNU / Linux при экспорте рисунков в пакетном режиме. Лучше всего использовать расширение export_fig.

Просто загрузите исходный код из GitHub и используйте его:

plot(cos(linspace(0, 7, 1000)));
set(gcf, 'Position', [100 100 150 150]);
export_fig test2.png
person Dan    schedule 26.05.2017

попробуйте сюжет (вар); СохранитьРисунок('название'); Это будет сэкономить как jpeg автоматически

person cedyd    schedule 30.01.2014
comment
нет ни одной функции с таким названием - person Gastón Bengolea; 20.03.2014
comment
Попробуйте, и вы увидите, что да, он есть, хотя в предупреждающем сообщении рекомендуется «сохранить рис». - person Thom; 25.03.2014
comment
Он действительно есть... как сказал Том. но мне нужно исправить себя, вам нужно будет сделать saveFigure('title.jpg'); но я также видел savefig онлайн... - person cedyd; 29.03.2014
comment
Это savefig, а не saveFigure. - person Franklin Yu; 17.01.2017