How do I get values of a certain parameter in a multi-dimensional matrix?

A is a variable with the size of 1000 x 500.
% Index of those that are less than 10000
Ind = A < 10000;
Why does the below give me a 500000 x 1 column data, instead of a 1000 x 500 matrix?
b = a(Ind);
What did I do wrong? How do I get the correct b with the size of 1000 x 500?

More Answers (1)

b should be an Nx1 vector where N is the number of elements satisfying A<10000.

6 Comments

Thanks for the reply and sorry for my typo. So how do I get the correct b with the size of 1000 x 500?
I think you need to describe better why you expect b to be a 1000x500 matrix. What if there had been only 3 elements for which A<10000?
If there were only 3 elements for A < 10000, the rest of them should be NaNs.
My goal is to remove missing values fillers, 9*10^26 and replace them with NaNs, so that I would have a matrix with only values that are within the normal range.
Many thanks!
Many thanks! That works equally well.
You could also use standardizeMissing.
M = 9e26;
format shortg
A = [4 8 M 15 M M; 16 23 42 M M M]
A = 2×6
1.0e+00 * 4 8 9e+26 15 9e+26 9e+26 16 23 42 9e+26 9e+26 9e+26
B = standardizeMissing(A, M)
B = 2×6
4 8 NaN 15 NaN NaN 16 23 42 NaN NaN NaN

Sign in to comment.

Products

Release

R2021b

Tags

Asked:

on 30 Nov 2021

Commented:

on 30 Nov 2021

Community Treasure Hunt

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

Start Hunting!