Matlab:如何运行具有多个输出的For循环?
所以我的问题是关于matlab中的回归()函数 如果我想使用这个函数运行多元回归并输出系数和置信区间,在For循环中最好的方法是什么 Matlab自己的语法是[b,bint]=回归(y,X)。但当我尝试在for循环中实现时,它告诉我维度不匹配。我的代码如下:Matlab:如何运行具有多个输出的For循环?,matlab,for-loop,output,linear-regression,Matlab,For Loop,Output,Linear Regression,所以我的问题是关于matlab中的回归()函数 如果我想使用这个函数运行多元回归并输出系数和置信区间,在For循环中最好的方法是什么 Matlab自己的语法是[b,bint]=回归(y,X)。但当我尝试在for循环中实现时,它告诉我维度不匹配。我的代码如下: for i=1:6 [a, b]=regress(Dataset(:,i),capm_factors); capm_coefs(i,:)=a; capm_ci(i,:)=b; end 请帮忙,谢谢 回归输出系数的列向量,使输入数据(cap
for i=1:6
[a, b]=regress(Dataset(:,i),capm_factors);
capm_coefs(i,:)=a;
capm_ci(i,:)=b;
end
请帮忙,谢谢
回归
输出系数的列向量,使输入数据(capm_因子
)和预测值(数据集(:,i)
)之间的最小平方误差最小化。但是,在for
循环中,假设a
和b
是行向量
此外,回归
的第一个输出是系统的解决方案,但第二个输出包含置信值矩阵,其中第一列表示每个变量的置信区间下限,第二列表示置信区间上限
具体而言,您的输入capm_因子
应该是mxn
矩阵,其中M
是输入样本的总数,N
是特征的总数。在你的代码中,a
会给你一个nx1
向量,b
会给你一个nx2
矩阵
如果要使用循环,请确保capm_coefs
是nxl
矩阵,其中l
是要循环的总次数,capm_ci
应该是nx2 xl
三维矩阵或l
元素单元数组。任何一种方式都是可以接受的。。。。但我会告诉你如何做到这两个
我想到了这样的事情:
作为3D矩阵的信任
然后,您可以通过capm_coefs(:,ii)
访问系数进行试验,其中ii
是您想要的迭代。类似地,可通过capm_ci(:,:,ii)
作为单元数组的信任
如上所述,您可以通过capm_coefs(:,ii)
访问系数,其中ii
是您想要的迭代。然而,置信矩阵可以通过capm_ci{ii}
访问,因为我们现在正在处理单元数组
l = 6; %// Define # of trials
[M,N] = size(capm_factors); %// Get dimensions of data
capm_coefs = zeros(N, l);
capm_ci = zeros(N, 2, l);
for ii = 1 : l
[a,b] = regress(Dataset(:,i), capm_factors);
capm_coefs(:,ii) = a;
capm_ci(:,:,ii) = b;
end
l = 6; %// Define # of trials
[M,N] = size(capm_factors); %// Get dimensions of data
capm_coefs = zeros(N, l);
capm_ci = cell(l); %// Cell array declaration
for ii = 1 : l
[a,b] = regress(Dataset(:,i), capm_factors);
capm_coefs(:,ii) = a;
capm_ci{ii} = b; %// Assign confidences to cell array
end