我正在使用函数deletemodelGenes来删除Human-Gem模型中的基因,但在一行中出现错误
% Figure out if any of the reaction states is changed
% for j = 1:length(rxnInd)
% if (isfield(model, 'rules') && ~isempty(model.rules{rxnInd(j)})) %To avoid errors if the rule is empty
% if (~eval(model.rules{rxnInd(j)}))
% constrainRxn(j)= true;% end % end
我注解了这几行,现在函数工作正常,我想知道如果我运行函数没有这几行,它是否正常,或者需要做什么更改才能使这个函数正常工作?
需要使用此功能。
1条答案
按热度按时间mtb9vblg1#
看起来此代码段正在迭代“rules”结构,该结构似乎是表示使用
eval
计算的函数的字符串。首先,使用eval是一个不好的习惯。我建议修改models.rules{},使用函数句柄的单元数组。
为了回答你的问题,看起来这段代码是通过依次评估单元数组中包含的eval语句来检查一堆“React状态”,并设置一个
constrainRxn
标志(如果有)返回一个假布尔值。这可能会在代码的另一部分做一些事情,比如提前退出或引发错误。没有上下文很难说,但很少有计算中使用的代码是不必要的。