首页 > 解决方案 > Matlab单元阵列协议问题

问题描述

我需要使用循环来检查 2 个标识符是否匹配,添加相应的值,然后将这些总和附加到向量中。

这是我使用 readtable() 函数上传到 matlab 的原始数据的图片:

原始数据

基本上我想检查 2 FundID 是否匹配,如果匹配,将它们的净资产加在一起并将其放入一个新数组中,该数组有 2 个东西:1) FundID 和 2)每个股票类别的净资产总和共享一个基金ID。

这是我到目前为止所拥有的,但它不起作用。我不断收到有关矩阵大小不匹配的错误。我认为这与使用“单元”数据类型有关,但我不熟悉它。

这是我的代码:

%% import data

sInfo = readtable('SMallMidDemographics.csv');
lInfo = readtable('LargeCapdemographics.csv');

sRet = readtable('SmallMid1980to2021.csv');
lRet = readtable('LargeCap1980to2021.csv');

%% aggragate AUM's

%large cap - adding AUM's of SecID's that share a common fund

AUM = zeros(size(lInfo,1),1);
for i=1 : size(lInfo,1);
    if lInfo.FundId{i} == lInfo.FundId{i+1};
        AUM(i,1) = (lInfo.NetAssets_ShareClassUSD{i} + lInfo.NetAssets_ShareClassUSD{i+1});
        AUM.FundId(i) = lInfo.FundId(i);
        i=i+1;
    else AUM.AUM{i} = lInfo.FundId{i};
        AUM.FundId{i} = lInfo.FundId{i+1};
        i=i+1;
    end
end

标签: matlabfinancecell-array

解决方案


推荐阅读