私は1990年から2016までのmatlabテーブルの履歴データを持っています。このテーブルには、var1 = Date、var2 = A、var3 = B、var4 = C、var5 = DなどのDateを含む5つの変数/列があります。MATLABテーブルのサブセットに構造を適用するには?
このmatlabテーブルをDataとしましょう。
私はDataAllからサンプルまたはサブセットの別のmatlabテーブルを作成し、matlab構造体に入れたいと思います。私の目標は、私の構造は、 フィールド1 =データ1(1990-2000)、フィールド2 =データ2(1990-2001)、フィールド3 =データ3(1990年) (1990-2006)、フィールド7 =データ7(1990-2006)、フィールド8 =データ8(1990-2007)、フィールド9 (1990-2010)、フィールド12 =データ12(1990-2011)、フィールド13 =データ13(1990-2012)、フィールド14 =データ14(1990- 2013)、フィールド15 =データ15(1990-2014)、フィールド16 =データ16(1990-2015)
私はコードを作成しましたが、非常に時間がかかるので、forループを使って短縮したいと思います。それがどういうことか分かりますか?
% In-sample 1990-2000
rows00 = year(Data.Date)<2001;
vars00 = {'Date','A'};
D00 = Data(rows00,vars00);
% In-sample 1990-2001
rows01 = year(Data.Date)<2002;
vars01 = {'Date','A'};
D01 = Data(rows01,vars01);
% In-sample 1990-2002
rows02 = year(Data.Date)<2003;
vars02 = {'Date','A'};
D02 = Data(rows02,vars02);
% In-sample 1990-2003
rows03 = year(Data.Date)<2004;
vars03 = {'Date','A'};
D03 = Data(rows03,vars03);
% In-sample 1990-2004
rows04 = year(Data.Date)<2005;
vars04 = {'Date','A'};
D04 = Data(rows04,vars04);
% In-sample 1990-2005
rows05 = year(Data.Date)<2006;
vars05 = {'Date','A'};
D05 = Data(rows05,vars05);
% In-sample 1990-2006
rows06 = year(Data.Date)<2007;
vars06 = {'Date','A'};
D06 = Data(rows06,vars06);
% In-sample 1990-2007
rows07 = year(Data.Date)<2008;
vars07 = {'Date','A'};
D07 = Data(rows07,vars07);
% In-sample 1990-2008
rows08 = year(Data.Date)<2009;
vars08 = {'Date','A'};
D08 = Data(rows08,vars08);
% In-sample 1990-2009
rows09 = year(Data.Date)<2010;
vars09 = {'Date','A'};
D09 = Data(rows09,vars09);
% In-sample 1990-2010
rows10 = year(Data.Date)<2011;
vars10 = {'Date','A'};
D10 = Data(rows10,vars10);
% In-sample 1990-2011
rows11 = year(Data.Date)<2012;
vars11 = {'Date','A'};
D11 = Data(rows11,vars11);
% In-sample 1990-2012
rows12 = year(Data.Date)<2013;
vars12 = {'Date','A'};
D12 = Data(rows12,vars12);
% In-sample 1990-2013
rows13 = year(Data.Date)<2014;
vars13 = {'Date','A'};
D13 = Data(rows13,vars13);
% In-sample 1990-2014
rows14 = year(Data.Date)<2015;
vars14 = {'Date','A'};
D14 = Data(rows14,vars14);
% In-sample 1990-2015
rows15 = year(Data.Date)<2016;
vars15 = {'Date','A'};
D15 = Data(rows15,vars15);
field1 = 'Y1990_2000';
field2 = 'Y1990_2001';
field3 = 'Y1990_2002';
field4 = 'Y1990_2003';
field5 = 'Y1990_2004';
field6 = 'Y1990_2005';
field7 = 'Y1990_2006';
field8 = 'Y1990_2007';
field9 = 'Y1990_2008';
field10 = 'Y1990_2009';
field11 = 'Y1990_2010';
field12 = 'Y1990_2011';
field13 = 'Y1990_2012';
field14 = 'Y1990_2013';
field15 = 'Y1990_2014';
field16 = 'Y1990_2015';
Insample = struct(field1,D00,field2,D01,field3,D02,field4,D03,field5,D04,...
field6,D05,field7,D06,field8,D07,field9,D08,field10,D09,field11,D10,...
field12,D11,field13,D12,field14,D13,field15,D14,field16,D15);
コードを作成しました。しかし、非常に時間がかかり、forループを使用して短縮したいと思います。それをやる方法を聞いてもいいですか? – RSo