How to change values between two values in an array
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I need to replace certain values within an array that fall between 2 and 4. The code should find where the array equals 2 and then find the following location where the array equals 4 and replace all values with 3. Then it should find where the array equals 4 and then find the following location where the array equals 2 and replaces all of those values with 1. And then loop through the array until all values are 1, 2, 3 or 4 and in order (repeats of values are OK).
Here is an example array:
transitions = [1285738, 2, 2, 2915260, 4, 4290129, 2, 5650291, 4, 8030363, 2, 9337983, 4, 12040647];
I need to:
- change the values that fall between 2 and 4 to 3 (e.g., the 4th, 8th and 12th values should be 3)
- change the values between 4 and 2 to 1 (e.g., the 6th and 10th values should be 1)
5 comentarios
the cyclist
el 4 de Oct. de 2021
- If a 4 follows a 2, change every intervening value to 3, THEN
- If a 2 follows a 4, change every intervening value to 1
Respuestas (1)
Swatantra Mahato
el 7 de Oct. de 2021
Hi Jake,
I am assuming you want to replace values in the array that occur between a 2 and 4, and those that occur between a 4 and 2.
One way of doing this I can think of is using the "find" function to get the indices of all the 2s and 4s as demonstrated below
transitions = [1285738, 2, 2, 2915260, 4, 4290129, 2, 5650291, 4, 8030363, 2, 9337983, 4, 12040647];
t=find(transitions==2)
f=find(transitions==4)
you can then loop over 'f' and 't' and replace the values in between accordingly
you can find more information and how-to examples on the "find" function in the documentation
Hope this helps
0 comentarios
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!