if statement deleting cells
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
cormac spillane
am 25 Apr. 2015
Kommentiert: cormac spillane
am 25 Apr. 2015
I want to use the if function to delete every row in a matrix D that has a cell with -99.99 , there are a total of 582 rows and 2 colmuns if that helps. Any assistance would be greatly appreciated.
1 Kommentar
Stephen23
am 25 Apr. 2015
In MATLAB a cell refers to an element of a cell array, whereas for numeric and characters arrays the individual vlaues are called the elements.
Akzeptierte Antwort
Stephen23
am 25 Apr. 2015
Bearbeitet: Stephen23
am 25 Apr. 2015
There is one very important point to consider, and that is that checking for equivalence of floating point values is not recommended:
Instead of checking that the value is equal to -99.99 you should check that the values is inside a range of values, or equivalently use a tolerance values in a comparison:
>> tol = 0.01;
>> val = -99.99;
>> D = [1,2,3;4,5,-99.99;6,7,8;9,-99.99,0] % fake data
D =
1 2 3
4 5 -99.99
6 7 8
9 -99.99 0
>> D(any(abs(D-val)<=tol,2),:) = []
D =
1 2 3
6 7 8
This solution uses vectorized code and logical indexing, which will be faster than solving this in a loop. It also extends nicely as the arrays get larger, unlike a loop.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Types finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!