Если я правильно понимаю проблему, вы sh захотите разбить поле структуры, когда определенное значение превысит три, и создадите новое поле со следующими значениями вплоть до следующих трех.
Вот пример. С учетом
s.Temperature = [1 2 3 4 5 2 3 4 5];
следующий код:
indx = find(diff(s.Temperature > 3) == 1);
l = length(indx);
for i=1:l
if i==l
s = setfield(s,['new_field_', num2str(i)],s.Temperature(indx(i):end));
else
s = setfield(s,['new_field_', num2str(i)],s.Temperature(indx(i):indx(i+1) - 1));
end
end
сгенерирует:
s =
struct with fields:
Temperature: [1 2 3 4 5 2 3 4 5]
new_field_1: [3 4 5 2]
new_field_2: [3 4 5]
Когда вы закончите, вы можете просто удалить поле Temperature
:
rmfield(s,'Temperature')