根据搜索选择值的行矩阵

时间:2016-04-08 14:12:32

标签: matlab select search matrix

假设我们有一个矩阵,我们希望在该矩阵的第一列中的每一行搜索某个值。最后,MATLAB保存与第一列匹配的值的整行。

例如我们有这个矩阵

A = [...   
1   0   0;
2   0   0;
3   0   0;
1   2   0;
1   3   0;
2   3   0;
1   2   3;
4   0   0;
5   0   0;
6   0   0;
4   5   0;
4   6   0;
5   6   0;
4   5   6;
7   0   0;
8   0   0;
9   0   0;
7   8   0;
7   9   0;
8   9   0;
7   8   9];

如果我们要在第一列中搜索值1,那么下面会显示所需的结果:

B = ...
[1 0 0;
 1 2 0;
 1 3 0;
 1 2 3];

1 个答案:

答案 0 :(得分:0)

但是,如果您知道自己要搜索的价值,为什么不直接保存其索引而不是实际价值呢?我的意思是,如果你知道你正在寻找' 5'在矩阵A上,为什么不在新变量中保存它的位置?

现在,如果要显示包含值的完整行...

有多种方法可以做到这一点。

假设您有一个矩阵A并且想要返回包含' 5'的行。元件。

% Define matrix A
A = [1 2 4; 0 1 2; 4 5 6];

% Supposing user wants to find 5
value = 5;

% This returns a matrix where 1 are the elements equal to value in 'A' matrix.
elements = (A == value);

% These are the indices of the elements
[row col] = find(ans==1);

% Creating new variable B with the rows that contains value (5 in this case)
B = A(row);