フィルターのクリア

How to run if and exist ?

7 ビュー (過去 30 日間)
Luca
Luca 2021 年 5 月 9 日
コメント済み: Luca 2021 年 5 月 15 日
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 件のコメント
Jonas
Jonas 2021 年 5 月 9 日
try running it using bracket like
a=5;
exist('a','var')

サインインしてコメントする。

採用された回答

VBBV
VBBV 2021 年 5 月 9 日
編集済み: VBBV 2021 年 5 月 9 日
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
  1 件のコメント
Luca
Luca 2021 年 5 月 15 日
Thank you it worked

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by