Substitute values in an array

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 Kommentar

Stefan Raab
Stefan Raab am 30 Nov. 2015
Bearbeitet: Stefan Raab am 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;

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Stephen23
Stephen23 am 30 Nov. 2015
Bearbeitet: Stephen23 am 30 Nov. 2015

0 Stimmen

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

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 30 Nov. 2015

Bearbeitet:

am 30 Nov. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by