Получите 3-D матрицу чувствительности от массива SimData
[T, R, Outputs, InputFactors]
= getsensmatrix(simDataObj)
[T, R, Outputs, InputFactors]
= getsensmatrix(simDataObj,OutputNames,InputFactorNames)
| является определением m-by-1 массивов моменты времени для данных о чувствительности в R. |
| является массивом m-by-n-by-p данных о чувствительности с временами, выходными параметрами и входными факторами, соответствующими его первым, вторым, и третьим размерностям соответственно.
|
| Имя выходных факторов, где выведенными факторами являются имена состояний, для которых вы хотите вычислить чувствительность. |
| Имя входных факторов, где введенными факторами являются имена состояний, относительно которых вы хотите вычислить чувствительность. |
[ получает время и данные о чувствительности из объекта SimData (T, R, Outputs, InputFactors]
= getsensmatrix(simDataObj)simDataObj).
Когда содержит больше чем один элемент, выходными аргументами являются массивы ячеек, в которых каждая ячейка содержит данные для соответствующего элемента simDataObj.simDataObj
Метод getsensmatrix может только возвратить данные о чувствительности, которые содержатся в объекте SimData. Данные о чувствительности, которые зарегистрированы объект SimData, установлены во времени симуляции конфигурацией модели, используемой во время симуляции. Это обычно - активная конфигурация модели модели. Для объяснения того, как настроить вычисление чувствительности с помощью конфигурации модели, см. “Анализ чувствительности”. Обратите внимание в частности, что данные о чувствительности R, возвращенный getsensmatrix, могут быть нормированы, как задано во времени симуляции.
[ получает данные о чувствительности для выходных параметров, заданных T, R, Outputs, InputFactors]
= getsensmatrix(simDataObj,OutputNames,InputFactorNames) и входными факторами, заданными OutputNames. InputFactorNames
и OutputNames могут оба быть любым из следующего:InputFactorNames
Пустой массив
Вектор символов или скалярная строка, задающая имя
Вектор строки или массив ячеек из символьных векторов, задающий несколько имен
Передайте пустой массив для OutputNames или , чтобы попросить данные о чувствительности по всем выходным факторам или ввести факторы, содержавшиеся в InputFactorNames, соответственно. Можно также использовать полностью определенные имена, такие как simDataObj или 'CompartmentName.SpeciesName', чтобы разрешить неоднозначности.'ReactionName.ParameterName'
Этот пример показывает, как получить данные о чувствительности от объекта SimData.
Настройте симуляцию:
Импортируйте радио-модель затухания из примеров SimBiology®.
modelObj = sbmlimport('radiodecay');Получите параметры конфигурации и опции анализа чувствительности от modelObj.
configsetObj = getconfigset(modelObj); sensitivityObj = get(configsetObj, 'SensitivityAnalysisOptions');
Задайте разновидности, для которых вы хотите данные о чувствительности в свойстве Outputs. Все образцовые разновидности выбраны в этом примере. Используйте функцию sbioselect, чтобы получить объекты разновидностей из модели.
allSpeciesObj = sbioselect(modelObj, 'Type', 'species'); set(sensitivityObj, 'Outputs', allSpeciesObj);
Задайте разновидности и параметры, относительно которых вы хотите вычислить чувствительность в свойстве Inputs.
speciesObj = sbioselect(modelObj,'Type', 'species', 'Name', 'z'); parameterObj = sbioselect(modelObj, 'Type', 'parameter', 'Name', 'c'); set(configsetObj.SensitivityAnalysisOptions,'Inputs', [speciesObj, parameterObj]);
Включите SensitivityAnalysis.
set(configsetObj.SolverOptions, 'SensitivityAnalysis', true) get(configsetObj.SolverOptions, 'SensitivityAnalysis') ans = 1
Моделируйте и возвратите результаты в объекте SimData.
simDataObj = sbiosimulate(modelObj)
Извлеките и отобразите данные о чувствительности на графике из объекта SimData.
Используйте getsensmatrix, чтобы получить данные о чувствительности.
[t R outs ifacs] = getsensmatrix(simDataObj);
Постройте значения чувствительности.
plot(t, R(:,:,2));
legend(outs);
title(['Sensitivities of species relative to ' ifacs{2}]);