Filter löschen
Filter löschen

Substitute values in an array

1 Ansicht (letzte 30 Tage)
Inês Mendes
Inês Mendes am 30 Nov. 2015
Bearbeitet: Stephen23 am 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 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
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 Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by