Azzera filtri
Azzera filtri

How to run if and exist ?

7 visualizzazioni (ultimi 30 giorni)
Luca
Luca il 9 Mag 2021
Commentato: Luca il 15 Mag 2021
Hi,
I'm trying to run this loop.
for year= 1962:2016
for id=10000:93436
sub_regress = subsetPCA(subsetPCA.ID ==id & subsetPCA.years==year,:);
if size(sub_regress,1) ~= 0
[~, IDPCA1, yearsPCA1]= findgroups(sub_regress.ID, sub_regress.years);
[~, IDPCAd, datesPCA1] = findgroups(sub_regress.ID, sub_regress.dates);
modeltest = fitlm(sub_regress, 'RET~PC1+PC2+PC3+PC4+PC5');
RES_PCA = modeltest.Residuals.Raw;
RES_PCAtbl= table(IDPCAd,datesPCA1, RES_PCA);
RES_PCAtbl.Properties.VariableNames([1 2]) = {'ID' 'dates'};
if exist final_residuals
final_residuals =[final_residuals; RES_PCA];
else
final_residuals = RES_PCA;
end
end
end
end
For some reason it is not acepting final_residual in the if exist function with if statement? Does someone know how what the problem is?
Thank you in advance
  1 Commento
Jonas
Jonas il 9 Mag 2021
try running it using bracket like
a=5;
exist('a','var')

Accedi per commentare.

Risposta accettata

VBBV
VBBV il 9 Mag 2021
Modificato: VBBV il 9 Mag 2021
final_residuals = []
for year= 1962:2016
for id=10000:93436
sub_regress = subsetPCA(subsetPCA.ID ==id & subsetPCA.years==year,:);
if size(sub_regress,1) ~= 0
[~, IDPCA1, yearsPCA1]= findgroups(sub_regress.ID, sub_regress.years);
[~, IDPCAd, datesPCA1] = findgroups(sub_regress.ID, sub_regress.dates);
modeltest = fitlm(sub_regress, 'RET~PC1+PC2+PC3+PC4+PC5');
RES_PCA = modeltest.Residuals.Raw;
RES_PCAtbl= table(IDPCAd,datesPCA1, RES_PCA);
RES_PCAtbl.Properties.VariableNames([1 2]) = {'ID' 'dates'};
A = exist('final_residuals')
if A
final_residuals =[final_residuals; RES_PCA];
else
final_residuals = RES_PCA;
end
end
end
end

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Tag

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by