Bonjour a tous
Quand un indice est un vecteur colonne, on peut directement récupérer d'un tableau les valeurs qui correspondent a cet indice.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| >> tableau = rand(8,1)
tableau =
0.9501
0.2311
0.6068
0.4860
0.8913
0.7621
0.4565
0.0185
>> indice= [5;8]; tableau(indice, 1)
ans =
0.8913
0.0185 |
Si indice est un vecteur ligne, on doit transposer le résultat pour récupérer les valeurs sous forme de vecteur ligne.
1 2 3 4 5 6 7 8 9 10 11 12 13
|
>> indice= [5 8];
tableau(indice, 1)
ans =
0.8913
0.0185
>> tableau(indice, 1)'
ans =
0.8913 0.0185 |
Mais si l'indice est de taille n-dimensionnel (typiquement bidim), comment récupérer les valeurs sous la même forme que l'indice ?
Voici mon problème
J'ai une variable bkg: un tableau de taille (60,1,3). Il s'agit d'une sorte de colormap, la 3eme dimension code les valeurs R G et B.
J'ai un tableau d'indice A, de taille (300, 800), qui contient "numero" de la couleur a utiliser pour chaque pixel
Et un tableau im=zeros(600,800,3), a afficher avec la commande image. (la partie du bas sera noire)
1 2 3 4 5
| >> size(bkg(round(max(min(A,length(bkg)),1)),1,:))
ans =
240000 1 3 |
donc je ne peux pas affecter directement
>>im(1:300,:,:) = bkg(round(max(min(A,length(bkg)),1)),1,:)
Bien sûr, je peux le faire avec des boucles for, mais on doit pouvoir faire plus propre.
Zavez vous une idée ? Une commande qui permet de faire ça ?
M'ci
Partager