Ce que vous voulez, c'est accéder aux éléments de data
via leurs indices linéaires. Les indices linéaires s'incrémentent d'abord le long de la première dimension, puis le long de la deuxième dimension, et ainsi de suite. Par exemple, les éléments d'un tableau de 3 par 2 seront adressés dans l'ordre suivant
1 3 5
2 4 6
Donc pour obtenir l'élément (2,1)
d'un tableau 2 par 3 via une indexation linéaire, vous appelleriez array(3)
. Pour convertir un indice linéaire en indice (tel que la paire 2,3
), vous pouvez utiliser ind2sub
y sub2ind
respectivement.
Dans votre cas, vous devriez exécuter
linIdx = sub2ind(size(data),loc(:,2),loc(:,1))
si la première colonne de loc
des index dans les colonnes de data
et la deuxième colonne de loc
des index dans les rangs.
Ensuite, vous pouvez faire une boucle sur linIdx
pour changer votre appel de fonction à l'intérieur de la boucle en
testFunc(data1(linIdx(i)), data2(linIdx(i)), othervals)