在Matlab中存储来自多个循环的结果并创建一个看起来像数据框的对象

时间:2019-03-17 07:34:29

标签: matlab loops

我用于循环:

for i=1:length(thetas)
    theta = thetas(i); % Utility function
    for j=1:length(rhos)
        rho = rhos(j);
        for ii=1:length(gammas)
            gamma = gammas(ii);
            [kss]=equilibirum(debt)wherein      
        end
    end
end 

在每个步骤中,我基本上都会更改一些参数值,以获取列向量kss(大小:10000x1)的不同值

例如,我要遍历的参数向量为:

thetas = [1, 1.5]; 
rhos   = [0, 0.99, 2]; 
gammas = [-1,0,0.76, 0.9, 1] ; 

我想记住(或存储)我为哪些参数组合获取“ kss”的值

如何以易于理解和导出(例如在Excel中)的方式来实现Matlab?理想的解决方案是使我的结果看起来像python(pandas)或R

中的数据框对象

1 个答案:

答案 0 :(得分:1)

您可以在MATLAB中使用tables来描述您希望完成的工作。

kss_table = table;
counter = 1;
for i=1:length(thetas)
    theta = thetas(i); % Utility function
    for j=1:length(rhos)
        rho = rhos(j);
        for ii=1:length(gammas)
            gamma = gammas(ii);
            kss = equilibirum(debt)wherein
            kss_table.Theta(counter) = theta;
            kss_table.Rho(counter) = rho;
            kss_table.Gamma(counter) = gamma;
            counter = counter + 1;
        end
    end
end