Essayez ceci, si je comprends bien votre problème
newValue = 5;
valueToFind = 1;
vector = [2 3 4 6 1 3 2 1 3];
vector(vector==valueToFind) = newValue;
Mise à jour (pour répondre à votre commentaire ci-dessous):
Il y a est pas une bonne façon de le faire, mais je ne serais probablement faire une «table» des valeurs à rechercher et de ce qu'il faut réassembler avec leurs nouveaux homologues. Par exemple,
valuesTable = [1 3 4 6 9;... %#old values
2 0 5 7 0]; %#new values
Vous pouvez ensuite passer par eux comme suit:
vector = [2 3 4 6 1 3 2 1 3];
valuesTable = [1 3 4 6 9;... %#old values
2 0 5 7 0]; %#new values
N = size(valuesTable,2); %#count indices to go through
for n = 1:N
old = valuesTable(1,n); %#get current old value
new = valuesTable(2,n); %#get corresp. new value
vector(vector==old) = new; %#replace the values
end
Il pourrait y avoir d'autres approches plutôt que mon approche « table », mais je trouve clairement, palpable et facile à lire .
Merci mon ami, mais disons que j'ai 5 index différents et un vecteur (1:10). Maintenant, dans chaque nouvelle génération, je veux remplacer chacun d'entre eux par une nouvelle valeur, basée sur une valeur qu'ils ont actuellement. Je dois tout faire en une seule étape - selon ce que vous avez suggéré, mon vecteur ne cesse de changer à chaque pas. – Davor
Que voulez-vous dire par indices? – Phonon
tout nombre numérique donné (soit 1 à 5 par exemple) – Davor