Matlab:如何运行具有多个输出的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

所以我的问题是关于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

请帮忙,谢谢

回归
输出系数的列向量,使输入数据(
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