if statement deleting cells

조회 수: 2 (최근 30일)
cormac spillane
cormac spillane 2015년 4월 25일
댓글: cormac spillane 2015년 4월 25일
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
Stephen23
Stephen23 2015년 4월 25일
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.

댓글을 달려면 로그인하십시오.

채택된 답변

Stephen23
Stephen23 2015년 4월 25일
편집: Stephen23 2015년 4월 25일
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.
  댓글 수: 1
cormac spillane
cormac spillane 2015년 4월 25일
thank you stephen ! that works much better and is logically more sound
cheers cormac

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Types에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by