Сохранение фигуры 10х1 - PullRequest
       12

Сохранение фигуры 10х1

0 голосов
/ 17 апреля 2019

У меня есть ряд фигур, которые я создаю, 2 из которых являются линейными.Я пытаюсь сохранить эти 2 линейных графика в формате JPEG, но у меня возникли некоторые проблемы.Использование saveas не работает.

Я также пытался использовать print и hgsave для этого, но безрезультатно.Я думаю, что hgsave может сохранить только в формате рис, так что это можно объяснить.Я могу сохранить рисунок вручную, используя file> save as, но я бы хотел сделать это и в коде.

Этот код может повторить проблему:

x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(Test_Line, 'testline.jpg')

В идеале код должен быть в состоянии сохранить рисунок в файл JPEG.Хотя, если это невозможно, тогда должно быть достаточно любого расширения файла изображения.Вместо этого я получаю эту ошибку:

Преобразование в ячейку matlab.graphics.chart.primitive.Line из ячейки невозможно.

Это связано с тем, что это строка 10x1объект?

Любая помощь приветствуется!

1 Ответ

3 голосов
/ 17 апреля 2019

Вы должны предоставить дескриптор рисунка, а не дескриптор линейных объектов.Вы можете обратиться к текущему рисунку, используя gcf:

x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(gcf, 'testline.jpg')

или (например, если у вас есть несколько созданных фигур, и вы хотите сохранить их в конце вашего сценария)Храните ручку фигуры:

x = categorical({'X1', 'X2'});
test = randi(5, 2, 10);
fig = figure;
Test_Line = plot(x, test, 'marker', 'o', 'linestyle', '-');
saveas(fig, 'testline.jpg')
...