Je suis curieux de savoir quelle est la meilleure façon de le faire: supposer que j'ai une matrice de zéro 10x10 et je veux remplacer les zéros par ceux avec les coordonnées connues, en Au début, je suis d'écrire une boucle pour remplacer les éléments un par un en lisant les x et y. Y a-t-il un autre moyen plus facile de le faire?Remplacer les éléments dans une matrice en fonction des coordonnées dans matlab
Exemple:
mat=zeros(10);
x=[1,3,5,7,9]';
y=[2,4,6,8,10]';
newmat= [0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0]
Je viens de réaliser que c'est un double de [une question récente] (http://stackoverflow.com/questions/5886039/matlab-addressing-of-one-index-without-sub2ind/5889492#5889492), auquel j'ai répondu. Cependant, je ne vous blâme pas de ne pas pouvoir le trouver car le titre de l'autre question ne vous aurait pas aidé à chercher. – abcd
@Yoda: Je pense que mon article est quelque peu déroutant, je n'avais pas l'intention d'assigner une forme à l'œil, mais simplement de substituer les éléments selon x et y. Mais merci pour l'aide :) – tytamu
Yen: Pas de problème. La solution de @ eat est plus générale, et si votre exemple avait été différent, c'est exactement ce que j'aurais suggéré. – abcd