Je ne suis pas très familier avec Matlab, alors excusez-vous pour cette question idiote à l'avance. Je voudrais attribuer le numéro 1 à certains emplacements spécifiques d'une matrice. J'ai un vecteur de ligne et le vecteur de colonne correspondant. J'ai essayé d'attribuer plusieurs fois des valeurs à ces endroits. Cependant, cela n'a pas fonctionné. Voici un exemple de codes de taille plus petite. Supposons qu'il y a une matrice 4 * 4 et je voudrais affecter matrice (1,1), matrice (2,3) et matrice (3,4) à 1. C'est ce que j'ai fait. Cependant, j'ai reçu une réponse comme p> peut signaler ce que je fais mal ici? La taille réelle de la matrice que je vais travailler est en milliers de personnes, c'est pourquoi je ne peux pas attribuer ces positions une par une par une manuellement. Y a-t-il un moyen d'utiliser le vecteur de ligne et le vecteur de colonne que je dois attribuer la valeur 1? Merci beaucoup, P> p>
3 Réponses :
matrix(1,1) = 1 matrix(2,3) = 1 matrix(3,4) = 1
Merci beaucoup d'avoir répondu. Cependant, la taille réelle de ma matrice est en milliers de personnes. Je ne peux pas attribuer une à une. Il en va de même pour utiliser le vecteur de la ligne et le vecteur de colonne que j'ai? Merci
Vous pouvez utiliser Sub2ind code> pour calculer les indices linéaires des positions que vous souhaitez affecter et utiliser celles pour l'affectation:
indices = sub2ind(size(matrix), row, col);
matrix(indices) = 1;
Un peu d'une bosse. Sauf si vous faites de nombreuses lignes ou colonnes non contiguës, un moyen très utile est comme il prend en charge l'élément Math très facilement p> Ceci tournerait P> < Pré> xxx pré> dans p>
Il peut être utile: Stackoverflow.com/Questtions/6850368/...
Merci beaucoup. J'ai vérifié le poste et c'est très utile.