How to replace/delete some elements of a Matrix to a certain value

2 views (last 30 days)
Hello everyone,
I have a matrix of 2799x7 matrix and i want to delete 10% of the data points or individual cells randomly. Or replace 10% of the data sets to zero. The size of the matrix should remain the same after the operation.
  1 Comment
Steven Lord
Steven Lord on 23 Oct 2019
You can't delete individual elements of a numeric array in MATLAB to leave "holes" in the array. Guillaume listed how to replace a certain number of elements with 0's, but depending on what you're going to do with this data afterwards replacing them with NaN or missing instead of 0 may be more useful.
Generally 0 is more likely to be a valid data value than NaN. Because of this using the missing data functions (ismissing, rmmissing, fillmissing, standardizeMissing) on your 0-filled data may remove real data that happened to be 0 before you "deleted" 10% of your data points.

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 23 Oct 2019
Edited: Guillaume on 23 Oct 2019
yourmatrix(randperm(numel(yourmatrix), numel(yourmatrix) * 0.1)) = 0; %replace 1/10th of the elements chosen at random by 0

More Answers (0)

Categories

Find more on Preprocessing Data in Help Center and File Exchange

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!