sbioplot

Постройте результаты симуляции на одном рисунке

Описание

пример

sbioplot(sd) графики каждая симуляция, запущенная от sd, SimData объект или массив объектов, на том же рисунке. График является графиком временной зависимости каждого состояния в sd. Рисунок также показывает иерархическое отображение всех запусков как различные узлы в дереве, и можно выбрать который запуск отобразиться.

пример

sbioplot(sd,fcnHandle,xArgs,yArgs,Name,Value) результаты симуляции графиков путем вызова указателя на функцию fcnHandle с входными параметрами sd, xArgs, и yArgs, и дополнительные опции использования заданы одним или несколькими аргументами пары "имя-значение". Например, можно задать x-метку и y-метку графика. xArgs и yArgs должны быть массивы ячеек или векторы строки из имен состояний, чтобы построить.

Примеры

свернуть все

Постройте добычу по сравнению с данными о хищнике из стохастическим образом симулированной lotka модели при помощи пользовательской функции (plotXY).

Загрузите модель. Установите тип решателя на SSA выполнять стохастические симуляции и устанавливать время остановки на 3.

sbioloadproject lotka;
cs              = getconfigset(m1);
cs.SolverType   = 'SSA';
cs.StopTime     = 3;
rng('default') % For reproducibility

Определите номер запусков и используйте sbioensemblerun для симуляции.

numRuns = 2;
sd      = sbioensemblerun(m1,numRuns);

Постройте данные моделирования. По умолчанию, sbioplot показывает график временной зависимости каждой разновидности для каждого запуска.

sbioplot(sd); 

Figure contains an axes. The axes with title States versus Time contains 8 objects of type line. These objects represent Run 1 - x, Run 1 - y1, Run 1 - y2, Run 1 - z, Run 2 - x, Run 2 - y1, Run 2 - y2, Run 2 - z.

Постройте выбранные состояния друг против друга; в этом случае постройте популяцию жертв по сравнению с популяцией хищников. Используйте функциональный plotXY (показанный в конце этого примера), чтобы построить симулированный y1 (добыча) данные по сравнению с y2 (хищник) данные. Задайте функцию как указатель на функцию.

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

sbioplot(sd,@plotXY,{'y1'},{'y2'},'xlabel','y1','ylabel','y2','title','Prey versus Predator');

Figure contains an axes. The axes with title Prey versus Predator contains 2 objects of type line. These objects represent Run 1 - y1 vs y2, Run 2 - y1 vs y2.

Задайте Функцию plotXY

sbioplot принимает указатель на функцию для функции с подписью:

function [handles,names] = functionName(sd,xArgs,yArgs).

plotXY графики функций два выбранных состояния друг против друга. Первый вход sd данные моделирования (SimBiology SimData объект или вектор из объектов). В этом конкретном примере xArgs является массивом ячеек, содержащим имя разновидностей, которые будут построены на оси X, и yArgs является массивом ячеек, содержащим имя вторых разновидностей, которые будут построены на оси Y. Однако можно использовать входные параметры xArgs и yArgs в любом случае в пользовательской функции построения графика. Функция возвращает handles, массив указателей на функцию к линейным графикам и names, массив ячеек из символьных векторов, показанный на узлах, которые являются дочерними элементами узла Запуска в иерархическом отображении.

function [handles,names] = plotXY(sd,xArgs,yArgs)
    
% Select simulation data for each state from each run.
xData1 = selectbyname(sd(1),xArgs);
xData2 = selectbyname(sd(2),xArgs);
yData1 = selectbyname(sd(1),yArgs);
yData2 = selectbyname(sd(2),yArgs);

% Plot the species against each other.
fH1 = plot(xData1.Data,yData1.Data);
fH2 = plot(xData2.Data,yData2.Data);

% The first output, handles, is a two-dimensional array of handles of the line plots. It must be of size M x N, 
% where M is the number of line plots for each run and N is the number of runs.
handles = [fH1,fH2];

% The second output, names, must be a one-dimensional cell array of character vectors.
% Its length must be equal to the number of rows in handles, and the texts are displayed on the 
% nodes that are children of a Run node.
names = {'y1 vs y2'};
   
end

Входные параметры

свернуть все

Результаты симуляции в виде SimData объект или вектор из SimData объекты.

Этот аргумент соответствует первому входу функции, на которую ссылается fcnHandle.

Пример: simdata

Функция, чтобы сгенерировать линейные графики в виде указателя на функцию. Для примера пользовательской функции, чтобы построить выбранные разновидности от данных моделирования, смотрите, что График Выбрал States from Simulation Data.

Функция должна иметь подпись:

function [handles,names] = functionName(sd,xArgs,yArgs).

Входные параметры sd, xArgs, и yArgs те же входные параметры, которые вы передаете в том, когда вы вызываете sbioplot.

Первый выход handles двумерный массив указателей линейных графиков, сгенерированных функцией. Его размером должен быть P-by-R, где P является количеством линейных графиков, и R является количеством запусков.

Второй выход names одномерный массив ячеек из символьных векторов, содержащий имена, которые будут отображены на узлах, которые являются дочерними элементами узла Run в иерархическом отображении. Длина names должно быть равно количеству строк в handles.

Пример: @plotXY

Типы данных: function_handle

Состояние называет, чтобы построить в виде вектора строки или массива ячеек из символьных векторов. Например, можно использовать xArgs представлять состояния, которые будут построены на x - ось вашего пользовательского графика.

Этот аргумент соответствует второму входу функции, на которую ссылается fcnHandle.

Пример: {'y1'}

Типы данных: cell

Состояние называет, чтобы построить в виде вектора строки или массива ячеек из символьных векторов. Например, можно использовать yArgs представлять состояния, которые будут построены на y - ось вашего пользовательского графика.

Этот аргумент соответствует третьему входу функции, на которую ссылается fcnHandle.

Пример: {'y2','z'}

Типы данных: cell

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'title','Species X versus Species Y' задает заголовок осей графика.

Заголовок осей в виде разделенной запятой пары, состоящей из 'title' и вектор символов или строка.

Пример: 'title','Prey versus Predator'

Типы данных: char | string

Пометьте для x - ось графика в виде разделенной запятой пары, состоящей из 'xlabel' и вектор символов или строка.

Пример: 'xlabel','y1'

Типы данных: char | string

Пометьте для y - ось графика в виде разделенной запятой пары, состоящей из 'ylabel' и вектор символов или строка.

Пример: 'ylabel','y2'

Типы данных: char | string

Вопросы совместимости

развернуть все

Поведение изменяется в R2020a

Смотрите также

|

Введенный в R2008a