假设我们有一个矩阵,我们希望在该矩阵的第一列中的每一行搜索某个值。最后,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];
答案 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);