Как перебрать каждый элемент массива в заданном диапазоне в Matlab? - PullRequest
0 голосов
/ 10 января 2019

У меня есть функция, которая выводит целое число на основе массива 9 x 1. Я хочу проверить вывод функций для различных значений массива, поэтому в идеале я бы хотел перебрать каждый элемент массива в диапазоне (0,3). Есть ли более простой способ сделать это, чем использовать 9 вложенных циклов?

1 Ответ

0 голосов
/ 10 января 2019

Обратите внимание, что у вас есть 3 ^ 9 аранжировка. Если у вас есть функция, которая может присваивать номера от 1 до 3 ^ 9 каждой комбинации, вы можете сделать один цикл.

for i=1:3^9
    current_array = arrangement_no(i);
    test_function(current_array);
end

Чтобы определить эту функцию, в основном конвертируйте в основание 3 каждое число, возьмите цифры и добавьте одну. Я приведу пример для массива размером 3 с записями в диапазоне 0: 2 (попробуйте сначала, если можете).

function current_array = arrangement_no(i)
current_array = zeros(1,3)
for j = 1:3
   current_array(end+1-j) = mod(i,3);
   i= floor(i/3);
end
end
...