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

 Akzeptierte Antwort

Guillaume
Guillaume am 15 Jul. 2015

0 Stimmen

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 Kommentare

AbelM Kusemererwa
AbelM Kusemererwa am 15 Jul. 2015
I save them as data for easy uploading. However, plan and T are separate in the workspace
Guillaume
Guillaume am 15 Jul. 2015
Bearbeitet: Guillaume am 15 Jul. 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 am 15 Jul. 2015
Bearbeitet: AbelM Kusemererwa am 15 Jul. 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);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by