Отобразите результаты симуляции на одном рисунке
sbioplot(
графики каждой симуляции выполняются из sd
)sd
, а SimData
объект или массив объектов на том же рисунке. График является временным графиком каждого состояния в sd
. Рисунок также показывает иерархическое отображение всех запусков как различных узлов в дереве, и можно выбрать, какие запуски отображать.
sbioplot(
строит графики результатов симуляции путем вызова указателя на функцию sd
,fcnHandle
,xArgs
,yArgs
,Name,Value
)fcnHandle
с входами sd
, xArgs
, и yArgs
и использует дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера можно задать метки X и Y для графика. xArgs
и yArgs
должны быть массивами ячеек или строковыми векторами имен состояний для построения графика.
Постройте график данных о добыче от хищника из стохастически моделируемой модели лотки с помощью пользовательской функции (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);
Постройте график выбранных состояний друг против друга; в этом случае постройте график популяции жертв от популяции хищников. Используйте функцию plotXY
(показан в конце этого примера), чтобы построить график моделируемых данных y1 (добыча) по сравнению с данными y2 (хищник). Задайте функцию как указатель на функцию.
Если вы используете файл live скрипта для этого примера, plotXY
функция уже включена в конец файла. В противном случае необходимо задать plotXY
функцию в конце файла .m или .mlx или добавить его как файл по пути MATLAB.
sbioplot(sd,@plotXY,{'y1'},{'y2'},'xlabel','y1','ylabel','y2','title','Prey versus Predator');
Задайте функцию plotXY
sbioplot принимает указатель на функцию для функции с сигнатурой:
function [handles,names] = functionName(sd,xArgs,yArgs)
.
The plotXY
графики функций двух выбранных состояний друг против друга. Первый входной sd
- данные моделирования (SimBiology SimData
объект или вектор объектов). В этом конкретном примере xArgs является массивом ячеек, содержащим имя вида, который будет нанесен на ось X, и yArgs является массивом ячеек, содержащим имя второго вида, который будет нанесен на ось y. Однако можно использовать входы xArgs и yArgs любым способом в пользовательской функции построения графика. Функция возвращается handles
, массив указателей на функцию для линейных графиков и names
массив ячеек из векторов символов, показанный на узлах, являющихся дочерними узлами узла Run в иерархическом отображении.
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
fcnHandle
- Функция для генерации линейных графиковФункция для генерации линейных графиков, заданная как указатель на функцию. Пример пользовательской функции для построения графика выбранных видов из данных моделирования см. в Графическое изображение выбранных состояний из данных моделирования.
Функция должна иметь подпись:
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
- имена состоянийИмена состояний для построения графика, заданные как строковый вектор или массив ячеек из векторов символов. Например, можно использовать xArgs
для представления состояний, которые будут нанесены на x ось пользовательского графика.
Этот аргумент соответствует второму входу функции, на которую ссылаются fcnHandle
.
Пример: {'y1'}
Типы данных: cell
yArgs
- имена состоянийИмена состояний для построения графика, заданные как строковый вектор или массив ячеек из векторов символов. Например, можно использовать yArgs
для представления состояний, которые будут нанесены на y ось пользовательского графика .
Этот аргумент соответствует третьему входу функции, на которую ссылаются fcnHandle
.
Пример: {'y2','z'}
Типы данных: cell
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'title','Species X versus Species Y'
задает заголовок графика для осей.'title'
- заголовок осиЗаголовок оси, заданный как разделенная разделенными запятой парами, состоящая из 'title'
и вектор символов или строка.
Пример: 'title','Prey versus Predator'
Типы данных: char
| string
'xlabel'
- Метка для x -осиМетка для x -оси графика, заданная как разделенная разделенными запятой парами, состоящая из 'xlabel'
и вектор символов или строка.
Пример: 'xlabel','y1'
Типы данных: char
| string
'ylabel'
- Метка для y -осиМетка для y -оси графика, заданная как разделенная разделенными запятой парами, состоящая из 'ylabel'
и вектор символов или строка.
Пример: 'ylabel','y2'
Типы данных: char
| string
Поведение изменено в R2020a
Начиная с R2020a, легенды рисунков отображаются статистически. Флажок All Runs был удален.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.