我在我的大学集群中使用Matlab 2016a。我的本地PC安装了Matlab 2016b。
我尝试使用cellfun进行非常大的回归。抗旱性和预测层为2044x1572。抗旱性的内部维度"是100x1而内部尺寸是"预测者"是100x6,代表每个细胞的不同预测因子。
d_regress=cellfun(@(x,y)regress(x,y),Drought_resistance,predictors,'UniformOutput',false);
当我在本地PC上运行带有示例数据的代码时,我没有错误。
但是,当我在群集上运行此代码时,我收到错误:
Error using *
Inner matrix dimensions must agree.
Error in regress (line 93)
b(perm) = R \ (Q'*y);
Error in @(x,y)regress(x,y)
然后我修复了内部矩阵的尺寸,使它们分别为1x100和100x6。
然后我得到以下错误,这是有道理的,因为回归是如何工作的。
Error using |
Matrix dimensions must agree.
Error in regress (line 66)
wasnan = (isnan(y) | any(isnan(X),2));
Error in @(x,y)regress(x,y)
我必须在群集上使用mldivide
才能进行回归(mldivide
没有给我任何错误),但我更愿意使用regress
到期其附加功能。有什么方法可以修改我的代码以便使用regress
吗?