# Finding a value of one vector based on the nonzero values of another vector

조회 수: 1(최근 30일)
L'O.G. 2022년 12월 8일
댓글: Stephen23 2022년 12월 8일
Given two vectors, how do you determine the value of A where B is 1? In this case, A=[5 4]. How do I do this?
A = [2 5 1 4];
B = [0 1 0 1];

댓글을 달려면 로그인하십시오.

### 답변(3개)

Arif Hoq 2022년 12월 8일
편집: Arif Hoq 2022년 12월 8일
A = [2 5 1 4];
B = [0 1 0 1];
[I C]=find(B==1);
output=A(C)
output = 1×2
5 4
##### 댓글 수: 0표시 이전 댓글 수: -1숨기기 이전 댓글 수: -1

댓글을 달려면 로그인하십시오.

Image Analyst 2022년 12월 8일
If B is always guaranteed to be 0 or 1, you can do this
A = [2 5 1 4];
B = [0 1 0 1]; % B is a double here.
A = A(logical(B)) % Need to cast B to logical
A = 1×2
5 4
If B can be anything and you want to get A where B is not equal to zero:
A = [2 5 1 4];
B = [0 23 0 341];
A = A(B ~= 0)
A = 1×2
5 4
##### 댓글 수: 1표시 없음숨기기 없음
Stephen23 2022년 12월 8일
Using LOGICAL() works in both cases:
A = [2 5 1 4];
B = [0 23 0 341];
A = A(logical(B))
A = 1×2
5 4

댓글을 달려면 로그인하십시오.

Voss 2022년 12월 8일
A = A(B == 1)

댓글을 달려면 로그인하십시오.

### 범주

Find more on Create Block Masks in Help Center and File Exchange

R2021b

### Community Treasure Hunt

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

Start Hunting!