2016-08-07 2 views
1

Привет Я хотел бы сделать следующее в Matlabцифра печать в MATLAB с помощью функции обрабатывать

Пусть у меня есть функция, которая Участки под Застройку что-то

function # call 1 
function # call 2 
function # call 3 
function # call 4 

Считают, что все вышеперечисленные функции построить фигуру в окно matlab. Как я могу написать функции, такие, что оно сохранит фигуру где-то и тогда я могу использовать что-то вроде этого -

subplot(2,2,1), # plot for call 1 
subplot(2,2,2), # plot for call 2 
subplot(2,2,3), # plot for call 3 
subplot(2,2,4), # plot for call 4 

Я не хочу, чтобы сохранить отдельные фигуры в памяти и снова загрузите его.

Очень простая функция, как это:

x = linspace(0,2*pi,100); 
y = sin(x); 
xmarkers = 0:pi/2:2*pi; % place markers at these x-values 
ymarkers = sin(xmarkers); 
figure 
plot(x,y,'b',xmarkers,ymarkers,'b*') 

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

+0

Можете ли вы показать функции? –

+0

Теперь ясно. Пожалуйста, скажи мне. В противном случае я объясню это еще раз. – roni

+1

Вы также можете прочитать документы. Там все в порядке, http://se.mathworks.com/help/matlab/ref/figure.html http://se.mathworks.com/help/matlab/ref/plot.html – patrik

ответ

2

Я создал скрипт myplot.m, который вызывает функцию myfunction:

fig_handle1 = figure; 
gcf 

fig_handle2 = figure; 
plot(1:10); 
gcf 

myfunction(fig_handle1, 1); 
myfunction(fig_handle1, 4); 

Это создает две цифры и хранит ручки в fig_handle1 и fig_handle2. Первая цифра не используется, вторая цифра используется для построения рампы. gcf сообщает, какая фигура в данный момент активна. Как вы хотите, чтобы plot на первый рисунок в myfunction, вам нужно будет передать правильный рисунок фигуры. Второй аргумент будет сказать, что сюжетные использовать:

Содержание функции myfunction.m выглядит следующим образом:

function myfunction(fig_handle, subplot_no) 
    set(0,'CurrentFigure', fig_handle) 

    x = linspace(0,2*pi,100); 
    y = sin(x); 
    xmarkers = 0:pi/2:2*pi; % place markers at these x-values 
    ymarkers = sin(xmarkers); 

    subplot(2, 2, subplot_no); 
    plot(x,y,'b',xmarkers,ymarkers,'b*'); 
end 

Он использует set(0,'CurrentFigure', fig_handle) установить текущую фигуру к вашей первой цифре, а затем использует subplot(2, 2, subplot_no); для выбора подплат, который вы хотите. plot затем нарисует вашу первую фигуру.

Вызов myplot из командной строки дает следующий результат:

Figures 1 and 2

Используйте функциональные возможности отладки шагнуть через код и посмотреть, что происходит.

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