目录
3.5 [row,col] = find(X>0 & X<10,3)
1.find函数
功能:查找非零元素的索引和值。
2.find功能函数
-
k = find(X)
功能:返回一个向量,该向量包含数组X中每个非零元素的线性索引。
如果X是向量,则find返回与X方向相同的向量。
如果X是多维数组,则find返回结果线性索引的列向量。
如果X不包含非零元素或为空,则find返回一个空数组。
-
k = find(X,n)
功能:返回对应于X中非零元素的前n个索引。
-
k = find(X,n,direction)
功能:其中direction为'last',查找X中的最后n个非零元素。方向的默认值为'first',查找前n个非零元素。
-
[row,col] = find(___)
功能:使用先前语法中的任何输入参数返回数组X中每个非零元素的行和列下标。
-
[row,col,v] = find(___)
功能:返回向量v,其中包含X的非零元素。
3.find功能函数详解
3.1 k = find(X)
在3×3矩阵中找到非零元素。
%% 矩阵中的零和非零元素
% 在3×3矩阵中找到非零元素。
X = [1 0 2; 0 1 1; 0 0 4]
%%
k = find(X)
%%
% 使用逻辑| not | | X |上的运算符 找到零。
k2 = find(~X)
输出结果如下图:
数组k,输出的为二维数组X的非零元素的下标(索引),是按列进行排查的;
数组k2,输出的为二维数组X的零元素的下标(索引),是按列进行排查的;
3.2 k = find(X<10,5)
在4×4矩阵中找到小于10的前五个元素
程序如下:
%% 满足条件的要素
% 在4 x 4矩阵中找到小于10的前五个元素
% 方阵
X = magic(4)
%%
%
k = find(X<10,5)
%%
% 查看| X |的相应元素。
X(k)
输出结果如下图:
3.3 k = find(y==0.3)
要查找特定的整数值,请使用==运算符。 例如,在奇数的1×10向量中找到等于13的元素。
%% 等于特定值的元素
% 要查找特定的整数值,请使用| == | 操作
% 找到等于| 13 |的元素.在奇数1乘10的向量中。
x = 1:2:20
%%
%
k = find(x==13)
%%
% 要查找非整数值,请根据您的数据使用公差值。
% 否则,由于浮点,结果有时是一个空矩阵
% 舍入错误。
y = 0:0.1:1
%%
%
k = find(y==0.3)
%%
%
k = find(abs(y-0.3) < 0.001)
输出结果如下图:
3.4 k = find(X,4,'last')
查找最后几个非零元素
%% 最后几个非零元素
% 使用所有奇数索引元素创建6×6魔术方阵
% 等于零。
X = magic(6);
X(1:2:end) = 0
%%
% 找到_last_四个非零。
k = find(X,4,'last')
输出结果如下图:
3.5 [row,col] = find(X>0 & X<10,3)
查找满足多个条件的元素
%% 满足多个条件的元素
% 在4×4矩阵中找到大于| 0 |的前三个元素。 并且小于| 10 |。 指定两个输出以将行和列下标返回到元素。
X = [18 3 1 11; 8 10 11 3; 9 14 6 1; 4 3 15 21]
%%
%
[row,col] = find(X>0 & X<10,3)
%%
% 第一个实例是| X(2,1)|,它是| 8 |。
输出结果如下图:
3.5 [row,col,v] = find(X)
寻找非零元素的下标和值
%% 非零元素的下标和值
% 在3×3矩阵中找到非零元素。 指定三个输出以返回行下标,列下标和元素值。
X = [3 2 0; -5 0 7; 0 0 1]
%%
%
[row,col,v] = find(X)
输出结果如下图:
3.6 [row,col] = find(X)
寻找多维数组的下标
%% 多维数组的下标
% 在4×2×3数组中查找非零元素。 指定两个输出,| row |。 和| col |,返回非零元素的行和列下标。
% 当输入是多维数组(| N> 2 |)时,| find | 返回| col | 作为| N-1 |的线性指标 | X |的尾随尺寸。
X = zeros(4,2,3);
X([1 12 19 21]) = 1
%%
%
[row,col] = find(X)
输出结果如下图: