- Используйте
array
вместо cell
- Также, поскольку все ваши
cell_elements
1s
, вы можете использовать матрицу
ones(row, column)
Укажите row
и column
, здесь row is 1
, а в столбце 100
это код
cell_elements = ones(1, 100)
- Определить
a
как массив a = [1, 40, 77]
- Первые 40 элементов - это элементы, имеющие индексы
1 to 40
, в Matlab
это эквивалентно 1:40
, чтобы включить массив a
,
с a(1) = 1 and a(2) = 40
; установить 1:40
как a(1):a(2)
Первые 40 элементов будут
First_40_elements = cell_elements(a(1):a(2));
Чтобы сложить их все вместе, используйте встроенную функцию Matlab sum
следующим образом
Sum_First_40_elements = sum(First_40_elements)
- Для вторых 37 элементов индексы начинаются с
41 to 77
, в Matlab
записывается как 41:77
, используя массив a
, a(2)+1:a(3)
Следуя логике выше
Second_37_elements = cell_elements(a(2)+1:a(3));
Sum_Second_37_elements = cell_elements(Second_37_elements);
Весь код выглядит следующим образом
cell_elements = ones(1,100);
a = [1,40,77];
First_40_elements = cell_elements(a(1):a(2));
Sum_First_40_elements = sum(First_40_elements);
% 40
Second_37_elements = cell_elements(a(2)+1:a(3));
Sum_Second_37_elements = sum(Second_37_elements);
% 37
Динамический путь выглядит следующим образом
cell_elements = ones(1,100);
a = [1,25,40, 67, 80, 95];
element_sum = zeros(1, length(a)-1);
for i = 1:length(a)-1
if i == 1
element_sum(i) = sum(cell_elements(a(i):a(i+1)));
else
element_sum(i) = sum(cell_elements(a(i)+1:a(i+1)));
end
end
Результат
>> element_sum
element_sum =
25 15 27 13 15
>>