One measure greater than another?
1 view (last 30 days)
Show older comments
Rachael Courts
on 17 Sep 2019
Commented: Walter Roberson
on 17 Sep 2019
Hi All,
I have a 697 x 38 which has different column headings such as 'startf, maxf, etc'.
I'm wanting to check if my measurements are true (an answer of 1 indiciting not true?) such that;
startf>fmax
startf<fmax etc..
Currently, I've sectioned off the columns of interests:
T = PWALLVOCSPARTSOFBIPHON
Wanted = T(:,'SFStartFreqHzoffundamental')
Wanted1 = T(:,'MaxFHzfundamental'
I now want to check if wanted is greater than wanted1
I tried:
Wanted > Wanted1 ans =
but thats just producing an error.
In addition, if the answers were shown to be untrue. Such as I have data of a start frequency that is lower than minimum frequency, how do i find which rows these will be located in?
5 Comments
Accepted Answer
Guillaume
on 17 Sep 2019
Note than an even simpler way to extract data from a table is with dot indexing:
Wanted = T.SFStartFreqHzoffundamental; %equivalent to T{:,'SFStartFreqHzoffundamental'}
Wanted1 = T.MaxFHzfundamental; %equivalent to T{:,'MaxFHzfundamental'}
mask = Wanted > Wanted1;
To keep only the portion of the table for whick mask is true:
Tinvalid = T(mask, :) %Not that this returns a table since we're using () indexing
which can be done in only one line:
Tinvalid = T(T.SFStartFreqHzoffundamental > T.MaxFHzfundamental, :)
If you want to know the row indices, use find:
invalidrows = find(T.SFStartFreqHzoffundamental > T.MaxFHzfundamental)
3 Comments
Guillaume
on 17 Sep 2019
Well, yes you've got no invalid rows, so you get empty results. If you indeed had invalid rows, you'd see them.
The number of invalid rows is:
nnz(mask)
More Answers (0)
See Also
Categories
Find more on Structures in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!