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

 Réponse acceptée

Guillaume
Guillaume le 15 Juil 2015
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 commentaires

AbelM Kusemererwa
AbelM Kusemererwa le 15 Juil 2015
I save them as data for easy uploading. However, plan and T are separate in the workspace
Guillaume
Guillaume le 15 Juil 2015
Modifié(e) : Guillaume le 15 Juil 2015
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
AbelM Kusemererwa
AbelM Kusemererwa le 15 Juil 2015
Modifié(e) : AbelM Kusemererwa le 15 Juil 2015
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);

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by