选择特定的数据范围从表/列

167(30天)
你好,
我很新的Matlab和没能找到以下解决方案。
我有两个1537090 x 2的列在一个表。在第二列我想提取数字属于15 - 50。
任何数字在第二列中发现,我想从第一列对应的行也会退出。
结果将会是另一个两列的表中,但所有值在15到50从第2列和相应的行第一列。
提前谢谢,真的很感谢任何帮助。

接受的答案

明星黾
明星黾 2020年4月18日
试试这个:
T1 =表(rand(100 1),兰迪(75100,1));%原始表
L = table2array (varfun (@ (x) ((x > = 15) & (x < = 50)), T1 (:, 2)));%逻辑向量
T2 = T1 (L:);%编辑表
10评论
明星黾
明星黾 2020年4月20日
像往常一样,这是我的荣幸!
(这是我得到了同样的结果。)

登录置评。

答案(1)

Sindar
Sindar 2020年4月18日
编辑:Sindar 2020年4月18日
idx = (mytable {: 2} > = 15) & (mytable {: 2} < = 50);
newtable = mytable (idx 1:2);
组件的回答:
  • 在第二列中提取数据(注意{};()将返回一个表)
mytable {: 2}
  • 识别哪些这个数组的元素(即哪些表的行)> = 15。这将返回一个逻辑阵列(真> = 15,假其他地方)
(mytable {: 2} > = 15)
  • elementwise和其他条件(< = 50)所以真只有在范围内
()和()
  • 从表中提取相应的行和列,虽然“:”工作,如果你想要所有的列)
mytable (idx 1:2)

标签

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!