更有效地填充结构

Fill structure more efficient

结构 'settings' 如何比使用此代码更容易填充:

settings(1).exposure = 1;      
settings(1).rebalancing = 0;   
settings(2).exposure = 0;      
settings(2).rebalancing = 0;   
settings(3).exposure = 1;
settings(3).rebalancing = 1;
settings(4).exposure = 0;
settings(4).rebalancing = 1;
settings(5).exposure = 'benchmark';
settings(5).rebalancing = 0;
settings(6).exposure = 'benchmark';
settings(6).rebalancing = 1;

您可以使用 [1 2 3 4 5 6]

创建数组/矩阵

然后在 for 循环中,为每个数字询问一个输入

i=1:6;
for i:6;
    settings(i).exposure=input(...);
    settings(i).rebalancing=input(...);
end

我认为你应该能够做到这一点。 (自从我上次使用带有 MatLab 的计算机以来已经有一段时间了,所以我无法确认)

您可以使用struct函数压缩它:

>> s = struct('exposure',{1,0,1,0,'benchmark','benchmark'},'rebalancing',{0,0,1,1,0,1});
>> s(6)
ans = 
       exposure: 'benchmark'
    rebalancing: 1

只要所有数组的大小都符合要求,数组字面量可以替换为包含您的数据的任何变量。