查找具有特定条件的特定行

时间:2013-12-01 17:59:39

标签: matlab

E.g。我有以下矩阵Data,其中包含3列:time satusr

1234 1  1
3134 0  10
34123 0 9
2342 1  10
232 1  1
...

鉴于selectedusr=[1 10],如何选择usr中包含selectedusr的行?

获取SelectedData

1234 1  1
3134 0  10
2342 1  10
232 1  1
...

2 个答案:

答案 0 :(得分:2)

使用ismember选择所需的行:

SelectedData = Data(ismember(Data(:,3),selectedusr),:);

答案 1 :(得分:1)

SelectedData = Data(any(bsxfun(@eq, Data(:, 3), selectedusr(:)'), 2), :);

bsxfun(@eq, ...)usr列的每个元素与selectedusr的每个元素进行比较,得到一个逻辑数组,其中selectedusr的每个元素都有一列。 any(..., 2)确定此矩阵的行,其中至少有一个逻辑值为真,从而产生逻辑列向量。这用于通过逻辑索引从Data中选择相应的行。