Недопустимая ошибка дескриптора при использовании hgexport и saveas в Matlab

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

h = figure('name','HousingIndex');
plot(quarter,indexSample,quarter,indexSubsample);
legend('Index Sample','Index Repeat Subsample');
title('Housing Index');
xlabel('Quarter');
ylabel('Index');

Где «четверть» — это вектор последовательных кварталов размером 1 на 75, а «indexSample» и «indexSubsample» — это векторы значений индексов размером 1 на 75. Однако, когда я пытаюсь экспортировать фигуру с помощью функции hgexport как таковой:

hgexport(h,'HousingIndex.jpg');

Я получил следующее сообщение об ошибке:

??? Error using ==> hgexport at 140
First argument must be a handle to a figure.

Я также пытался использовать функцию saveas как таковую:

saveas(h,'HousingIndex.jpg')

и я получил следующее сообщение об ошибке:

??? Error using ==> saveas at 59
Invalid handle.

Обе ошибки указывают на то, что у меня недопустимый дескриптор. Я буду очень признателен за описательный ответ о том, почему я получаю недопустимый дескриптор, а также за решение этой проблемы.


person Abdulaziz Alhouti    schedule 03.02.2014    source источник
comment
Какая версия матлаба?   -  person kkuilla    schedule 03.02.2014


Ответы (1)


Столкнулся с той же проблемой, но нашел способ сделать это:

figure
h = plot([1:5],[1:5])
print('testing', '-dpng')

Первый задает новую пустую фигуру (возможно, это можно сделать и без этого шага, но у меня сработало и так), а последний создает png-файл (отсюда -dpng) с параметром имя «тестирование» и сюжет в h, и вуаля! Оно работает :)

person Anon    schedule 11.11.2015