How can I transfer values if specific condition is fulfilled?

Hello,
I got a Matrix with different cases:
a= (6,6)
0 1 0 2 0 0
0 2 0 1 0 0
0 1 0 2 0 0
0 1 0 2 0 0
0 1 0 2 0 0
0 2 0 1 0 0
And another matrix with different values:
b=(6,6)
1 3 1 1 3 1
2 4 2 3 4 3
3 5 3 4 5 4
4 6 3 5 6 5
5 5 4 6 5 6
6 6 5 6 6 6
Now I would like to transfer values of second and fourth collum of b [b(x,2)&b(x,4)] into a new Matrix if condition a(x,2) or a(x,4)= 1 is fulfilled.
So the end result would look like this:
c=(6,1)
3
3
5
6
5
6
How can I do this with Matlab? And I would like to keep the order. So it should work from line to line. Not collum for collum.
Thanks for helping me.

 Accepted Answer

A = a.';
B = b.';
B(A==1)

4 Comments

Would this keep the order correct?
I tried it like this. But it goes collum by collum and not line by line...
c=b(a==1)
In my answer, I also added the transpose. That will keep the order correct.
Perfect, it works ! Thanks a lot :)

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2019b

Asked:

on 22 Apr 2020

Commented:

on 22 Apr 2020

Community Treasure Hunt

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

Start Hunting!