2015-10-05 3 views
1

Возможно ли, чтобы Matlab вернул дескриптор ряда цифр из функции, а затем пользователь может указать, какую фигуру отобразить. Например:Изображение графика из дескриптора, возвращаемого из fucntion

function [fha, fh2, fh3] = my_funct(x,y) 

    fh1 = figure(1); 
    plot(x,y); 

    fh2 = figure(2); 
    plot(x,y*3); 

    fh3 = figure(3); 
    plot(x,y*7); 
end 

где x и y - любые входные векторы.

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

ГЭТ (FH1, «show_me_the_figure»)

и это покажет первую цифру, от ручки, которая возвращается из функции. Это возможно?

+2

Выполняет ли «фигура (fh2)»? Помните, что в любом случае, если фигура закрыта, ручка исчезнет! –

+0

Я думаю, что Ander - это место на ... – gregswiss

+0

Да, место на. Я сделал фигуры невидимыми в функции (visible = off), поэтому ваше предложение отлично работает. –

ответ

2

Вы можете выбрать рисунок, чтобы показать с помощью figure(handle), если ручка была создана с другим figure() вызова раньше.

0

Вместо того, чтобы генерировать 3 цифры, как насчет того, как вы нарисуете указанную вами цифру в соответствии с выбором? Поскольку handle=figure(number); всегда генерирует новое окно или перезаписывает существующее окно. В gui вы можете использовать переключатель в вашем обратном вызове выбора, который использует выбранную опцию в коммутаторе (пример простой функции ниже).

function [fh] = my_funct(x,y,chosen) 

switch chosen 
    case 1 
     fh = figure(1); 
     plot(x,y); 
    case 2 
     fh = figure(1); 
     plot(x,y*3); 
    case 3 
     fh = figure(1); 
     plot(x,y*7); 
    otherwise 
     fh = figure(1); 
     disp('No Valid Choice') 
end 
+0

Да, это то, что у меня было изначально, но тогда, если бы я хотел увидеть вторую фигуру, мне нужно было бы снова запустить функцию. В моем случае это нежелательно, так как функции требуется некоторое время для запуска. –

+0

Чем вы можете использовать assignin или сохранить, чтобы сохранить свои результаты и использовать отдельную функцию для построения выбранной фигуры? –

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