How can i build a for loop for a subset of data having repetitions?
    3 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
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
0 Commenti
Risposta accettata
  Jan
      
      
 il 22 Feb 2019
        
      Modificato: Jan
      
      
 il 22 Feb 2019
  
      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 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!