Ваши цветные полосы являются дочерними по отношению к фигуре, а не по осям вашего вспомогательного графика (цветные полосы сами являются осями).Попробуйте
hc = get(hf, 'children')
, чтобы получить список всех дочерних элементов фигуры, где hf
- дескриптор фигуры.Я не уверен, как бы вы, какой элемент hc
равен вашему Hc
, т. Е. Какой является first
colorbar.
Редактировать :
Если вам понадобится позже использовать дескриптор объекта, лучше всего присвоить его переменной при его создании и использовать эту переменную повсеместно.
Однако, если вы неЯ не хочу этого делать (хотя я настоятельно рекомендую это сделать). Я могу думать о двух вещах, которые вы можете сделать.Они не особенно элегантны и, безусловно, требуют больше работы, чем просто присвоение дескриптора объекта переменной.
Если вы знаете порядок, в котором были созданы оси, то вам повезло: в списке, если дети,первый созданный дочерний элемент - это последний элемент в списке, а последний созданный дочерний элемент - first .Например,
hf = figure;
ha1 = subplot(1,2,1);
image(rand(5,5));
hc1 = colorbar;
ha2 = subplot(1,2,2);
image(rand(5,5));
hc2 = colorbar;
hcs = get(hf, 'children')
hcs =
206.0016
204.0011
176.0016
174.0011
[hc2, ha2, hc1, ha1]'
ans =
206.0016
204.0011
176.0016
174.0011
Поскольку вам нужна первая цветовая панель, которая была создана вторым дочерним элементом, вы можете использовать
hc(end-2)
В качестве альтернативы, при создании цветовой панели, к которой вы хотите обратитьсяв будущем установите его tag
свойство.В приведенном выше примере замените строку
hc1 = colorbar;
на
hc1 = colorbar('tag', 'myID');
Затем вы можете получить дескриптор этого объекта с помощью
findobj(hf, 'type', 'axes', 'tag', 'myID')