填充结构更有效

时间:2016-11-12 18:25:58

标签: matlab structure fill

如何使用此代码更轻松地填充结构,即“设置”:

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;

2 个答案:

答案 0 :(得分:2)

您可以使用struct功能压缩它:

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

只要所有数组的大小都符合规范,数组文字就可以被包含数据的任何变量替换。

答案 1 :(得分:0)

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

创建数组/矩阵

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

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

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