HF.EH = EH.Return_EH;
Я хочу сделать вышеуказанное утверждение. HF - таблица, также EH.имена динамических переменных с использованием таблиц Matlab
str = 'HE'
HF.(str) = (str).Return_EH;
Последняя строка кода не работает. «HF. (Str)» отлично. "(str) .Return_EH" нет. Как я могу сделать "(str) .Return_EH" работать?
Прямо сейчас мой код выглядит следующим образом:
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;
Я думал, что должен быть лучший способ.
Надеюсь на решение без eval(). – PalimPalim
Динамические переменные - ужасная, страшная, страшная идея. Я рад, что вы не упомянули об использовании 'eval', потому что это тоже ужасная страшная идея. Скажите, пожалуйста, вы не используете глобалы! –
: D Нет Я не использую глобальные переменные – PalimPalim