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

조회 수: 3 (최근 30일)
L'O.G.
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
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

Image Analyst
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
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
Voss 2022년 12월 8일
A = A(B == 1)

카테고리

Help CenterFile Exchange에서 Create Block Masks에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by