2016-11-12 2 views
-1

Как структура т.е. «настройка» заполняются более легко, чем с этим кодом:Заливки более эффективная

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

Как данные, которые вы хотите заполнить структурированной структурой? Вы читаете его из какого-то файла? – hbaderts

ответ

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 

Литералы массива могут быть заменены на любой переменной, которая содержит ваши данные, если все массивы соответствуют размеру.

0

вы можете создать массив/матрицу с [1 2 3 4 5 6]

затем в цикле, для каждого номера задать вход

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

Я думаю, что вы должны быть в состоянии с этим. (Его было когда-то, так как я в последний раз использовал компьютер с MatLab, так что я не могу подтвердить)

+0

Во-первых, [вы не должны использовать 'i' как имя переменной] (http://stackoverflow.com/q/14790740/4221706), так как он обозначает мнимую единицу. Во-вторых, не указывайте 'i' перед циклом for, так как он будет просто переопределен на следующей строке. В-третьих, синтаксис «для i = 1: 6». – hbaderts

+0

да, извините. В последнее время я использую больше JAVA, чем Matlab, и попал в привычку. –

Смежные вопросы