如何根据列中的特定值从数组中选择行?

时间:2013-01-09 23:36:54

标签: arrays matlab sorting

我有一组数据。为简单起见,我们称之为4 x 3矩阵。假设我想在第2列中找到一个值为5的数据点。然后,我想在第2列中获取包含值5的所有行,并将其放在自己的数组中。我的数据比下面显示的数据大得多,所以我不想通过眼睛看看每一行数据并识别所有5个数据。

  % My idea of the code:

  data = [1 2 3 4; 5 5 5 6; 6 4 5 6]

  if data(:,2) == 5

  % This is the part I can't figure out

  end

让我们将最终数据调用为存储5的数据的数组。我该怎么做?

2 个答案:

答案 0 :(得分:6)

您应该使用logical indexing

all_fives_rows = data(data(:, 2) == 5, :)

答案 1 :(得分:0)

您可以使用FIND函数搜索该值,然后返回coords(可能是矢量)来检索行:

data(find (data(:,2)==5),:)

为什么不使用逻辑索引:Performance