How to trim a data to same dimension?

Data contains 2 columns (plan and T). However, plan contains some NaN. I would like to delete the NaN from plan and also its corresponding values in T so that the good data from columns plan and T will be of the same dimension

 Accepted Answer

Assuming data is an m x 2 matrix, it's simply:
Data(isnan(Data(:, 1)), :) = []
That is, find the nan in the first column of Data ( isnan(Data(:, 1))), and removes all the rows for which isnan is true ( Data(trueorfalse, :) = [])

4 Comments

I save them as data for easy uploading. However, plan and T are separate in the workspace
Well, it's still the same idea. Use the logical array returned by isnan to indicate which elements you want to remove in any of your variables:
todelete = isnan(plan); %find the nans
plan(todelete) = []; %remove them from plan
T(todelete) = []; %and remove them from T
Please, after deleting I would want to give them different names. How do I store them separately after deleting?
Then you don't delete, you only copy the data you want to keep (everything that is not nan)
tokeep = ~isnan(plan); %use ~ for logical not
newplan = plan(tokeep);
newT = T(tokeep);

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!