How to exclude certain rows and columns based on a column value?
23 次查看(过去 30 天)
显示 更早的评论
Dear all,
Attached you find a data file called "a" that has 30 rows and 24 columns. What I call "a trial" represents 1 row of "a" that includes all 24 columns, i.e. a trial refers to a(1,:).
I'm trying to create a variable called "b" that includes all trials of "a" where column 24 of "a" contains numbers <2560.
My first solution was
b= a(a(:,24)<2560)
Yet, this solution doesn't render the results I expect.
In order to unpack the problem, I've tried to create a new variable "c" that has only 1 column instead of 24 (like "a" does).
c= [2345; 2780; 345; 2150; 2908; 451]
Now, if I create a variable "d" that includes all rows in "c" that are <2560, the solution I used on the variable "b" above works.
d=c(c<2560)
This makes me think the problem lies with the fact that "a" has 24 columns (instead of 1 column, like "c" has). I'm trying to see what I'm missing, but I can't find an answer. Would any of you please be so kind as to help me out?
With gratitude,
Bianca
0 个评论
采纳的回答
Birdman
2020-4-2
Firstly, at your first line of code, you started checking from the beginning of a. Instead, you should be checking the 23rd column of a
b= a(:,a(:,23)<2560)
Also, you are missing the fact that there is no element in the 23rd column of a that is less than 2560. Therefore that line will return empty.
3 个评论
Ameer Hamza
2020-4-2
I guess Birdman mistyped the order of subscripts in his answer. Correct command is
b = a(a(:,24)<2560,:);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!