Matlab函数deleteModelGenes出错

gblwokeq  于 2023-03-30  发布在  Matlab
关注(0)|答案(1)|浏览(165)

我正在使用函数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
我注解了这几行,现在函数工作正常,我想知道如果我运行函数没有这几行,它是否正常,或者需要做什么更改才能使这个函数正常工作?
需要使用此功能。

mtb9vblg

mtb9vblg1#

看起来此代码段正在迭代“rules”结构,该结构似乎是表示使用eval计算的函数的字符串。
首先,使用eval是一个不好的习惯。我建议修改models.rules{},使用函数句柄的单元数组。
为了回答你的问题,看起来这段代码是通过依次评估单元数组中包含的eval语句来检查一堆“React状态”,并设置一个constrainRxn标志(如果有)返回一个假布尔值。
这可能会在代码的另一部分做一些事情,比如提前退出或引发错误。没有上下文很难说,但很少有计算中使用的代码是不必要的。

相关问题