Effacer les filtres
Effacer les filtres

Substitute values in an array

1 vue (au cours des 30 derniers jours)
Inês Mendes
Inês Mendes le 30 Nov 2015
Modifié(e) : Stephen23 le 30 Nov 2015
Hi guys,
I have a question.
I have an array like this:
d=[1 1 1 1 1 2 2 2 2 2 1 1 1 1 1 ]
How can i substitute the values of the array knowing that for the first 5 positions i want do to d=6 and for the last 4positions i want do do d=8? This means i can´t use d(d==1)= 6 because the values are different for each position...
Can anyone help?
Thanks in advance!
Inês
  1 commentaire
Stefan Raab
Stefan Raab le 30 Nov 2015
Modifié(e) : Stefan Raab le 30 Nov 2015
Hey, I am not sure if I get you right, but this might solve your problem:
d(1:5) = 6;
d((end-3):end) = 8;

Connectez-vous pour commenter.

Réponses (1)

Stephen23
Stephen23 le 30 Nov 2015
Modifié(e) : Stephen23 le 30 Nov 2015
If you do not know the indices in advance then you can use diff and find:
>> d = [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1];
>> f = find(diff(d));
>> d(1:f(1)) = 6;
>> d(1+f(end):end) = 8
d =
6 6 6 6 6 2 2 2 2 2 8 8 8 8 8
Or if the indices are known then they can be hardcoded:
>> d = [1,1,1,1,1,2,2,2,2,2,1,1,1,1,1];
>> d(1:5) = 6;
>> d(11:15) = 8
d =
6 6 6 6 6 2 2 2 2 2 8 8 8 8 8

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by