首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用matlab-tables的动态变量名

使用matlab-tables的动态变量名
EN

Stack Overflow用户
提问于 2017-02-21 00:40:34
回答 1查看 233关注 0票数 1
代码语言:javascript
复制
HF.EH = EH.Return_EH;

我想做上面的陈述。HF是一张表,EH也是。

代码语言:javascript
复制
str = 'HE'
HF.(str) = (str).Return_EH;

最后一行代码不起作用。"HF.(str)“就可以了。"(str).Return_EH“不是。怎样才能让"(str).Return_EH“工作呢?

现在我的代码看起来是这样的:

代码语言:javascript
复制
EH = importraw('HFRX_Equity_Hedge_Index.csv', 'EH');
EMN = importraw('HFRX_Equity_Market_Neutral_Index.csv', 'EMN');
EDI = importraw('HFRX_Event_Driven_Index.csv', 'EDI');
FICA = importraw('HFRX_FI-Convertible_Arbitrage_Index.csv', 'FICA');
MCTA = importraw('HFRX_Macro_CTA_Index.csv', 'MCTA');
MAI= importraw('HFRX_Merger_Arbitrage_Index.csv', 'MAI');
RVA = importraw('HFRX_Relative_Value_Arbitrage_Index.csv', 'RVA');

% sanity check
if not(isequal(EH.Date, EMN.Date, EDI.Date, FICA.Date, MCTA.Date, MAI.Date, RVA.Date));
 error('Mismatch in Data');
end


% merge Hedgefund Data
HF = array2table(zeros(size(EH,1),8), 'VariableNames',{'Date', ...
                    'EH', 'EMN', 'EDI', 'FICA', 'MCTA', 'MAI', 'RVA'});
HF.Date = EH.Date;                    
HF.EH = EH.Return_EH;
HF.EMN = EMN.Return_EMN;
HF.EDI = EDI.Return_EDI;
HF.FICA = FICA.Return_FICA;
HF.MCTA = MCTA.Return_MCTA;
HF.MAI = MAI.Return_MAI;
HF.RVA = RVA.Return_RVA;

我想应该有更好的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-21 04:56:07

您可以使用与使用表HF相同的方式使用结构,而不是查找动态变量名。首先,将所有数据导入到一个结构S

代码语言:javascript
复制
S.EH = importraw('HFRX_Equity_Hedge_Index.csv', 'EH');
S.EMN = importraw('HFRX_Equity_Market_Neutral_Index.csv', 'EMN');
% and so on...

然后,在健全性检查中,以及代码中的其他地方,您需要在这个表之前添加S.。现在,您可以将最后一部分替换为:

代码语言:javascript
复制
fld = fieldnames(S);
for k = 1:numel(fld)
    HF.(fld{k}) = S.(fld{k}).(['Return_' fld{k}]);
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42349865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档