# finding and changing values in matrix that satisfies 2 conditions

8 views (last 30 days)
Rene Sebena on 8 Feb 2017
Commented: Rene Sebena on 8 Feb 2017
Hi there, I am new in matlab and try to solve this problem for couple of hours, I have vector which contains various triggers and a lot of zeros:
A=[0;0;0;0;0;0;0;0;2;0;0;1;0;0;0;0;0;0;0;0;1;0;0;0;1;0;0;0;0;0;0;0;4;0;1;0;0;0;0;0;0;0;0;5;1];
what I need to do is to find the second value in matrix A which is bigger than 0 and change it to 100. In this case it is the 12th number, value "1", let's say it is target_1. Then I need to change every second number bigger then 0 and change it to 100, but we have to start counting from target_1.
So the final matrix will be like this:
B=[0;0;0;0;0;0;0;0;2;0;0;100;0;0;0;0;0;0;0;0;1;0;0;0;100;0;0;0;0;0;0;0;4;0;100;0;0;0;0;0;0;0;0;5;100];
Thank you very much ahead for your time and help.
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Adam on 8 Feb 2017
Edited: Adam on 8 Feb 2017
idx = find( A > 0 );
idx = idx(2:2:end);
B = A
B(idx) = 100;
##### 1 CommentShowHide None
Rene Sebena on 8 Feb 2017
Thanks, this helped me a lot!

Sign in to comment.

### More Answers (1)

Alexandra Harkai on 8 Feb 2017
Edited: Alexandra Harkai on 8 Feb 2017
idx = find(A); % find indices of nonzero elements in A
B = A; % initially set B to be same as A
B(idx(2:2:end)) = 100;
##### 1 CommentShowHide None
Rene Sebena on 8 Feb 2017
Thank you very much, this is working!

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!