Учитывая число 'c' и список номеров чисел ', я пытаюсь сгенерировать все суммы, которые я могу иметь для c и любого подмножества в числах. например. (1, [2,4,8]), я должен генерировать (обратите внимание, что мы всегда должны иметь c в сумме) [1,3,5,9,7,11,13,15]Суммировать все подмножества в matlab
I написал следующий код, но не все суммы появляются. Что не так?
function result = allsums(c, numbers)
if isempty(numbers)
result = [];
else
[nr n_numbers] = size(numbers);
for i = 1:n_numbers
result = cat(2, c+numbers(i), allsums(c, cat(2,numbers(1:i-1),numbers(i+1:end))));
end
end
result = cat(2, result, c+sum(numbers,2));
end
нет, сумма - это функция matlab для суммирования элементов матрицы, 2 означает сумму по столбцам. Я отредактирую код ma – giulio
да, но основная ошибка - это первые «суммы» в этой строке, так как вы напомнили свой функция без входных аргументов. – scmg
Ваш код работает благодаря. Тем не менее, я до сих пор не понимаю, что не так с моей рекурсией ... – giulio