Matlab if 语句不满足所有条件

问题描述 投票:0回答:1

抱歉,这很容易成为一个重复的问题,但我相当有信心我还没有找到答案。

使用 fitlm 在 matlab 中进行一些回归分析。我只想查看 r2 值良好但不完美的模型(我有一些“变量与其自身的自我比较”)。所以我只想查看 r2 大于 0.75 但不是 1 的模型,而且我关心的事情很重要。

%do the modelling    
mdl = fitlm(X,comp);

%plot the good models
if mdl.Rsquared.Ordinary > 0.75 && mdl.Rsquared.Ordinary < 1 && mdl.Coefficients.pValue(2) < 0.05

plot(mdl)

end

这行代码

if mdl.Rsquared.Ordinary > 0.75 && mdl.Rsquared.Ordinary ~= 1 && mdl.Coefficients.pValue(2) < 0.05

成功过滤掉r2小于0.75,以及pvalue <0.05, but mdl.Rsquared.Ordinary ~= 1 doesn't work (in that models where r2 = 1 are still processed), and neither does

if mdl.Rsquared.Ordinary > 0.75 && mdl.Rsquared.Ordinary < 1 && mdl.Coefficients.pValue(2) < 0.05

我可能做错了什么?为什么它适用于 r2 >0.75,但不适用于 r2 < 1?

matlab if-statement
1个回答
0
投票

将其更改为 mdl.Rsquared.Ordinary < 0.999 seems to do the trick

© www.soinside.com 2019 - 2024. All rights reserved.