Como fazer um loop de dois vetores no MATLAB?
Em python pode-se usarzip
para repetir vários vetores ouenumerate
para obter o índice atual do vetor em loop dessa forma
one = ['A', 'B', 'C']
two = [1, 2, 3]
for i, j in zip(one, two):
print i, j
for j, i in enumerate(one):
print i, two[j]
Dá
>>>
A 1
B 2
C 3
A 1
B 2
C 3
No MATLAB é possível fazer
one = {'A' 'B' 'C'};
two = [1 2 3];
for i = 1:1:length(one)
printf('%s %i\n', one{i}, two(i));
endfor
j = 1;
for i = one
printf('%s %i\n', i{1}, two(j));
j = j + 1;
endfor
dando
A 1
B 2
C 3
A 1
B 2
C 3
Portanto, uma dessas duas opções é a maneira mais comum de fazer isso no MATLAB, i. e percorrer vários vetores "em paralelo" ou existe outra maneira, talvez melhor?
Bônus:
two = [1 2 3];
two = [1, 2, 3];
Ambas as linhas fornecem a mesma saída no programa MATLAB superior. Qual é a diferença?