E.g。我有以下矩阵Data
,其中包含3列:time
sat
和usr
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
...
答案 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
中选择相应的行。