我对Matlab很新颖,我很努力想弄清楚如何正确预处理我的数据以便对它进行一些计算。Matlab数据预处理和动态结构赋值
我有一个Excel表,这样许多公司的财务数收益,每行是一天,每列是一个公司:
我正确导入的一切到Matlab这样的:
现在我要创建什么是caled“滚动窗口”。要做到这一点,我使用下面的代码:
function [ROLLING_WINDOWS] = setup_returns(RETURNS)
bandwidth = 262;
[rows, columns] = size(RETURNS);
limit_rows = rows - bandwidth;
for i = 1:limit_rows
ROLLING_WINDOWS(i).SYS = RETURNS(i:bandwidth+i-1,1);
end
end
那么如果我在返回的第一列的一切工作正常此代码...但我的目的是要产生同样的事情数收益的每一列。所以基本上我必须添加第二个循环...但是我没有得到的是我需要使用哪种语法才能使该“.SYS”动态化,并基于包含公司名称的字符串单元格数组,以便...
ROLLING_WINDOWS(i)."S&P 500" = RETURNS(i:bandwidth+i-1,1);
ROLLING_WINDOWS(i)."AIG" = RETURNS(i:bandwidth+i-1,2);
and so on...
感谢您的帮助家伙!
编辑:工作职能
function [ROLLING_WINDOWS] = setup_returns(COMPANIES, RETURNS)
bandwidth = 262;
[rows, columns] = size(RETURNS);
limit_rows = rows - bandwidth;
for i = 1:limit_rows
offset = bandwidth + i - 1;
for j = 1:columns
ROLLING_WINDOWS(i).(COMPANIES{j}) = RETURNS(i:offset, j);
end
end
end
好一切都是完美的...只是一个问题... MATLAB intellissense告诉我:“ROLLING_WINDOWS似乎在每个循环改变大小迭代唧唧歪歪考虑预分配” .. 。我该怎么做?
谢谢队友!我只是用一个工作函数编辑我的问题!我如何预先分配ROLLING_WINDOWS变量? –
@Zarathos np。试试现在的老板。 – rayryeng