# how to get a new array with some values ​​from an old array

조회 수: 5(최근 30일)
Santo Lino 2022년 11월 26일
댓글: Voss 2022년 11월 27일
Hi, I'm a matlab beginner, I have a little problem with creating a new matrix. I have a matrix "A" of dimensions (1840x44), I am attaching a photo of a part of it.
I need to get a matrix "B" that has the values ​​of matrix "A" that are greater than 20. I tried doing B = (A>=20), but it only returns the positions (I need the value). Many thanks to whoever can help me with this little problem.

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

### 채택된 답변

Voss 2022년 11월 26일
B = (A >= 20) % same as B = A >= 20, i.e., without parentheses
makes B a matrix of logicals, the same size as A; the elements of B where A is greater than or equal to 20 are true; other elements of B are false.
To get the values of A that are >= 20, you can say:
B = A(A >= 20)
but it won't be a matrix, it will be a column vector. The elements of B will be in the same (column-major) order as they are in A.
Example:
A = [1 3.2 5.4]+[0;1;2;3]
A = 4×3
1.0000 3.2000 5.4000 2.0000 4.2000 6.4000 3.0000 5.2000 7.4000 4.0000 6.2000 8.4000
B = A(A >= 4)
B = 8×1
4.0000 4.2000 5.2000 6.2000 5.4000 6.4000 7.4000 8.4000
Alternatively, if you want B to be a matrix the same size as A, containing the elements of A that are >= 20 located at the same locations where they are in A and say zeros or NaNs everywhere else, you can do something like this:
B = NaN(size(A)); % or B = zeros(size(A)); % for instance
idx = A >= 4;
B(idx) = A(idx)
B = 4×3
NaN NaN 5.4000 NaN 4.2000 6.4000 NaN 5.2000 7.4000 4.0000 6.2000 8.4000
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Voss 2022년 11월 27일
You're welcome!

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

### 범주

Find more on Matrix Indexing in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by