How can i build a for loop for a subset of data having repetitions?

조회 수: 1 (최근 30일)
EM geo
EM geo 2019년 2월 22일
댓글: EM geo 2019년 2월 22일
I would like to do a regression analysis with some data in matrix A1 (variables indexed). The variable IDstop1 is repeated many times and i want to do the regression for each subset of Rmean_pred1, Rmean_obs1 and Zero1 where IDstop1 is the same (for example for IDstop1 = 20160008 and then for the next one etc..). I tried this loop but i receive only one value for y, x1, x2, and an error for X. I expect to have the same length of (for example) 20160008 for these variables.
Can someone help me?
IDstop1 = A1(:,1);
Rmean_pred1 = A1(:,15);
Rmean_obs1 = A1(:,14);
Zero1 = A1(:,3)
k = unique(IDstop1);
for i= 1:length(k)
y = Rmean_pred1(i);
x1 = Rmean_obs1(i);
x2 = Zero1(i);
X = [ones(size(x1(i))) x1(i) x2(i)];
b = regress(y,X)
end

채택된 답변

Jan
Jan 2019년 2월 22일
편집: Jan 2019년 2월 22일
Maybe you want:
k = unique(IDstop1);
result = cell(1, numel(k));
for i = 1:numel(k)
index = (IDstop1 == k(i));
y = Rmean_pred1(index);
x1 = Rmean_obs1(index);
x2 = Zero1(index);
X = [ones(size(x1)), x1, x2];
b = regress(y, X);
result{i} = b;
end
  댓글 수: 4
EM geo
EM geo 2019년 2월 22일
perfect! Thanks Madhan Ravi!!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Linear Regression에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by