В настоящее время у меня большая головная боль, чтобы заставить работать небольшой графический интерфейс, который создается не с помощью редактора графического интерфейса, а программно! На данный момент у меня есть что-то вроде следующего:
hFig = figure();
set(hFig, 'Position', [300 200 500 400]);
plot((1:10).^2, '*-r');
% Größe des Plots so anpassen, dass links Platz für Buttons
ap = get(gca, 'TightInset');
fp = get(gcf, 'Position');
set(gca, 'Position', [160/fp(3), 30/fp(4), (fp(3)-180)/fp(3), (fp(4)-60)/fp(4)]);
uicontrol('Style', 'pushbutton', 'String', 'foo', 'Position', [15 fp(4)-60 110 30]);
uicontrol('Style', 'pushbutton', 'String', 'bar', 'Position', [15 fp(4)-100 110 30]);
Попробуйте изменить его размер: он не «выглядит» одинаково, что означает, что поля uicontrol не остаются в одном и том же относительном положении, а поля от оси чтобы окно рисунка стало больше. Я хочу добиться:
Иметь окно фигуры с заданной позицией (x / y, ширина и высота) с графиком внутри. Сюжет будет иметь заголовок и метки для x и y. Сделайте график по высоте и ширине, чтобы TightInset плюс поля в каждом направлении определенного размера в пикселях (например, TightInset + 10px) были такими же большими, как окно рисунка; за исключением того, что оставьте 150 пикселей свободного места слева, чтобы разместить некоторые кнопки uicontrol, и пусть они остаются в том же положении: это было бы то же самое, что можно было бы вместо этого указать положение сверху / слева (сверху = 20, слева = 10) снизу / слева.
Большое спасибо!