2016-10-02 7 views
0

Мне нужно назначить устройства дюймов для подзаголовков (1-2). Я добавил movegui() для фигуры, после чего я начал получать ошибку. Без этого я не получаю сообщение об ошибке. КодКак присвоить свойство фигуры с помощью movegui() на субплате Matlab?

hFig3=figure('Units', 'inches', 'Name', 'Time, Potential, T-p, T-p tiff'); 
movegui(hFig3,'northeast'); % without this, you do not get the error 
% TechnicalMonitoring 
b1=subplot(2,2,1); 
b2=subplot(2,2,2); 
b3=subplot(2,2,3); 
b4=subplot(2,2,4); 

% b1, b2 
hFig3.Children(1).Units = 'inches'; 
hFig3.Children(2).Units = 'inches'; 

Ошибка

No public property Units exists for class matlab.graphics.GraphicsPlaceholder. 

Error in code_1s (line 488) 
    hFig3.Children(1).Units = 'inches'; 

Matlab: 2016a
ОС: Debian 8.5 64 бит

ответ

1

Я не могу воспроизвести вашу ошибку, но если вы хотите назначить единицы измерения для конкретных сюжетных, затем назначьте его явно для них, а не полагайтесь на hFig3.Children, чтобы вернуть подзаголовки в определенном порядке. Вы можете сделать это, передав массив от axes до set.

set([b1 b2], 'Units', 'inches') 

Или, если вы действительно хотите использовать точечную нотацию вы можете сделать их по отдельности

b1.Units = 'inches'; 
b2.Units = 'inches'; 

Или вы можете просто установить это, когда они созданы

subplot(2, 2, 1, 'Units', 'Inches'); 
+0

Я очень люблю свое первое предложение с массивом, который я так сильно пропустил, и я должен научиться его использовать, потому что мой код выглядит действительно дерьмовым без него; потому что у меня много цифр и у меня много осложнений взаимодействующих фигур/подстроек/... –

+1

@Masi. По возможности старайтесь явно изменять графические объекты, а не предполагать, что они где-то хранятся или что они являются текущим объектом. Таким образом, вы получите графический интерфейс, который будет работать независимо от того, что! – Suever

+0

Можете ли вы сделать аналогично для объекта фигуры, такого как 'set ([hFig], 'Position', unitsPerInches (:, index);'. В настоящее время у меня есть 'hFig.Position = unitsPerInches (:, index);', но на самом деле , У меня также есть другие цифры, которые нуждаются в одинаковых 'unitsPerInches', возможно, возможно' set ([hFig, hFig2], 'Position', unitsPerInches (:, index); '. - - Как вы думаете? –

 Смежные вопросы

  • Нет связанных вопросов^_^