How to change values between two values in an array
11 次查看(过去 30 天)
显示 更早的评论
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 个评论
the cyclist
2021-10-4
- 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
回答(1 个)
Swatantra Mahato
2021-10-7
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!