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

33

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

  • 0
    на самом деле это мой сюжет (x, y, '- bs', 'Linewidth', 1.4, 'Markersize', 10) ... удерживать весь сюжет (Qx, Qy, '-. r *', 'Markersize', 8) заголовок («Кривая белковой цепи», «FontSize», 14); легенда («P Points (вход)», «Q points (выход)», «Местоположение», «Север»); и я хотел бы сохранить его автоматически, не дожидаясь появления сюжета! но кажется, что это невозможно, потому что я не могу определить переменную нескольких кривых на одной фигуре
  • 0
    возможно дублирование .. много: stackoverflow.com/search?q=%5Bmatlab%5D+save+figure
Теги:
save
figure

7 ответов

57

Используйте saveas:

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')
  • 0
    Я уже пробовал, но это показывает эту ошибку ??? Ошибка: Файл: CurvePlotter.m Строка: 3 Столбец: 1 Неожиданное выражение MATLAB. это из-за захвата всего в моем заговоре!
  • 0
    и что там в line3 в этом файле? Вы знаете ... hold all - это команда сама по себе, не используйте ее для hold all plot(Qx,Qy,'-.r*','Markersize',8) но скорее hold all; plot(...) Также: учимся отлаживать
19

При использовании функции saveas разрешение не так хорошо, как при ручном сохранении фигуры с помощью File → Save As..., более рекомендуется использовать hgexport, а именно:

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

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

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

  • 0
    Спасибо, что решает так много проблем!
2

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

  • 0
    Я уже пробовал, но это показывает эту ошибку ??? Ошибка: Файл: CurvePlotter.m Строка: 3 Столбец: 1 Неожиданное выражение MATLAB. это из-за захвата всего в моем заговоре!
  • 1
    @Abdullah Я в замешательстве, так как вы отправили один и тот же комментарий к обоим ответам. Вы получаете эту ошибку, используя команду печати или используя 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
Показать ещё 3 комментария
1

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

0

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

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

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

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

-2

попробовать участок (вар); saveFigure ( 'название'); он автоматически сохранит jpeg

  • 0
    нет такой функции с таким именем
  • 0
    Попробуйте, и вы увидите, что да есть, хотя 'savefig' предупреждает об этом.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню