Substitute values in an array
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
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;
Réponses (1)
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
0 commentaires
Voir également
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!