精华内容
下载资源
问答
  • matlab find函数

    2019-10-05 06:27:08
    find函数用来获取向量或矩阵中非0元素的索引 假设X是行向量,则find(X)返回的是一个行向量;X'为列向量,find(X')返回的是一个列向量。 看一个例子:A是一个行向量,B是一个列向量,将B中非0元素的索引添加到A中 ...

    find函数用来获取向量或矩阵中非0元素的索引

    假设X是行向量,则find(X)返回的是一个行向量;X'为列向量,find(X')返回的是一个列向量。

    看一个例子:A是一个行向量,B是一个列向量,将B中非0元素的索引添加到A中

    A = [1 2 3];

    B = [0;0;0;4;5;6];

    A = [A, find(B)];

    结果出现错误:

    Error using horzcat

    CAT arguments dimensions are not consistent.

    原因:B是一个列向量,find(B)返回的是一个列向量,而A是行向量,无法进行拼接

    正确写法是

    A = [A, (find(B))'];

     

     

    转载于:https://www.cnblogs.com/MrUnwanted/p/3160918.html

    展开全文
  • Matlab find函数

    2017-07-31 17:00:16
    X = [1 0 4 -3 0 0 0 8 6]; ind = find(X);找到X中不为0的位置,并返回给ind 结果为:ind = 1 3 4 8 9还可以在find函数中增加条件,比如ind2 = find(X > 2)结果为ind2 = 3 8 9
    X = [1 0 4 -3 0 0 0 8 6];
    ind = find(X);

    找到X中不为0的位置,并返回给ind
    结果为:

    ind = 
        1 3 4 8 9

    还可以在find函数中增加条件,比如

    ind2 = find(X > 2)

    结果为

    ind2 = 
        3 8 9
    展开全文
  • find函数,可以找出矩阵中某个特定值的行列号。本文介绍一种方法,可以模拟find函数的功能。// OpenCVFind.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include using ...

    OpenCV和matlab都提供了强大的矩阵处理功能。但matlab也有一些功能是openCV不具备的。如find函数,可以找出矩阵中某个特定值的行列号。本文介绍一种方法,可以模拟find函数的功能。

    // OpenCVFind.cpp : 定义控制台应用程序的入口点。

    //

    #include "stdafx.h"

    #include

    #include

    #include

    #include

    using namespace cv;

    using namespace std;

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_core249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_imgproc249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_highgui249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_ml249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_video249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_features2d249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_calib3d249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_objdetect249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_contrib249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_legacy249d.lib")

    #pragma comment(lib, "E:\\cv\\opencv\\build\\x86\\vc11\\lib\\opencv_flann249d.lib")

    int _tmain(int argc, _TCHAR* argv[])

    {

    Mat Grayscale_Image, Binary_Image, NonZero_Locations;

    Grayscale_Image = Mat::eye(2,2,CV_32SC1);

    Binary_Image = Grayscale_Image == 1;

    NonZero_Locations.create(Binary_Image.rows, Binary_Image.cols, CV_32SC1);

    findNonZero(Binary_Image, NonZero_Locations);

    cout << "Non-Zero Locations = " << NonZero_Locations << endl << endl;

    std::cin.get();

    return 0;

    }

    程序首先通过一次逻辑运算 Grayscale_Image == 1,把CV_32SC1类型的矩阵转化为逻辑型矩阵。假如没有这一步,程序会崩溃。

    随后,利用Mat::create函数给NonZero_Locations矩阵分配内存。没有这一步,程序也会崩溃。

    运行结果给出了两个复合条件的的元素的位置:(0,0);(1,1)。

    0818b9ca8b590ca3270a3433284dd417.png

    与matlab的find函数相比,这个办法比较麻烦:首先要转化源矩阵为布尔型,还要给目标矩阵开辟内存。

    展开全文
  • matlab find函数详解

    万次阅读 2018-07-16 23:05:40
    Find 这个函数用处也挺大的,这几天看很多程序都见到这一函数,今天要好好给阐述,了解下 这个函数是为了找到矩阵或者是数组,向量中的非零元素。下面一大段英文没耐心看。看看例子就行了。 第一个用法是 ndices = ...

    Find 这个函数用处也挺大的,这几天看很多程序都见到这一函数,今天要好好给阐述,了解下

    这个函数是为了找到矩阵或者是数组,向量中的非零元素。下面一大段英文没耐心看。看看例子就行了。

    第一个用法是

    ndices = find(X)

    X = [1 0 4 -3 0 0 0 8 6];

    indices = find(X)

    返回x中非零元素的序号从1开始

    indices =

        1     3     4    8     9

    若x是个矩阵呢?

    x= [1  0 ;1  5 ;4 0 ]

    find(x)得到的是

        1

        2

        3

        5

      是一列矢量,非零元素的序号是按一列一列的算

    第二个用法

    ind = find(X, k)
    ind = find(X, k, ‘first’)
    ind = find(X, k, ‘last’)

    这三个是找前K个非零元素,前两式功能一致,第三式指从最后一个元素算起。

    重点说一下

    第三个用法

    [row,col] = find(X, …)
    [row,col,v] = find(X, …)

    例如

    X = [3 2 0; -5 0 7; 0 0 1];

    [r,c,v] = find(X>2)

    r =1

      2

    c =1

      3

    v =1

      1

    这样看看不出什么?看下式就比较明了。

     

    1  2  1    就是说矩阵中第一行第二列的元素满足X>2为真用1来表示。余下的类似。

    1  3  1   

    1 1  1  

    [r,c,v]

    要注意一下这一用法

    X = [3 2 0; -5 0 7; 0 0 1];

    [r,c,v]= find(X)                           这个得到的vX中非零的元素,要注意这个区别

    r =

        1                                     

        2                                  

        1            

        2

        3

    c =

        1

        1

        2

        3

        3

    v =

        3

       -5

        2

        7

        1

    Ps:如果你想求出矩阵中满足某种特定要求的元素,你会想到用find,但这并不是一个好方法

    有更加简便的方法如要找f1中小于等于 t的元素。用下式就能够做到

    r1=f1(f1<=t);   

    求矩阵所有元素的均值也不要像C语言那样把所有一个个都加起来利用下式temp1=mean(r1(:));  

     

    find

    Find indices and values of nonzero elements

    Syntax

    ind = find(X)
    ind = find(X, k)
    ind = find(X, k, ‘first’)
    ind = find(X, k, ‘last’)
    [row,col] = find(X, …)
    [row,col,v] = find(X, …)

    Description

    ind = find(X)locates all nonzero elements of array X, and returns the linear indices ofthose elements in vector ind. If X is a row vector, then ind is a row vector;otherwise, ind is a column vector. If X contains no nonzero elements or is anempty array, then ind is an empty array.

    ind = find(X, k) or ind = find(X, k, ‘first’) returns at most the first k indicescorresponding to the nonzero entries of X. k must be a positive integer, but itcan be of any numeric data type.

    ind = find(X, k,’last’) returns at most the last k indices corresponding to the nonzero entriesof X.

    [row,col] = find(X, …) returns the rowand column indices of the nonzero entries in the matrix X. This syntax isespecially useful when working with sparse matrices. If X is an N-dimensionalarray with N > 2, col contains linear indices for the columns. For example,for a 5-by-7-by-3 array X with a nonzero element at X(4,2,3), find returns 4 inrow and 16 in col. That is, (7 columns in page 1) + (7 columns in page 2) + (2columns in page 3) = 16.

    [row,col,v] =find(X, …) returns a column or row vector v of the nonzero entries in X, aswell as row and column indices. If X is a logical expression, then v is alogical array. Output v contains the non-zero elements of the logical arrayobtained by evaluating the expression X. For example,

    A= magic(4)

    A =

       16     2     3   13

        5    11    10    8

        9     7     6   12

        4    14    15    1

     

    [r,c,v]= find(A>10);

     

    r’, c’, v’

    ans =

        1     2     4    4     1     3

    ans =

        1     2     2    3     4     4

    ans =

        1     1     1    1     1     1

    Here the returned vector v is a logicalarray that contains the nonzero elements of N where

    N=(A>10)

    Examples

    Example 1

    X = [1 0 4 -3 0 0 0 8 6];

    indices = find(X)

    returns linear indices for the nonzeroentries of X.

    indices =

        1     3    4     8     9

    Example 2

    You can use a logical expression to defineX. For example,

    find(X > 2)

    returns linear indices corresponding to theentries of X that are greater than 2.

    ans =

        3     8     9

    Example 3

    The following find command

    X = [3 2 0; -5 0 7; 0 0 1];

    [r,c,v] = find(X)

    returns a vector of row indices of thenonzero entries of X

    r =

        1

        2

        1

        2

        3

    a vector of column indices of the nonzeroentries of X

    c =

        1

        1

        2

        3

        3

    and a vector containing the nonzero entriesof X.

    v =

        3

       -5

        2

        7

        1

    Example 4

    The expression

    X = [3 2 0; -5 0 7; 0 0 1];

    [r,c,v] = find(X>2)

    returns a vector of row indices of thenonzero entries of N where N=(X>2)

    r =

        1

        2

    a vector of column indices of the nonzeroentries of N where N=(X>2)

    c =

        1

        3

    and a logical array that contains thenonzero elements of N where N=(X>2).

    v =

        1

        1

    Recall that when you use find on a logicalexpression, the output vector v does not contain the nonzero entries of theinput array. Instead, it contains the nonzero values returned after evaluatingthe logical expression.

    Example 5

    Some operations on a vector

    x = [11 0  33  0 55]’;

     

    find(x)

    ans =

        1

        3

        5

     

    find(x == 0)

    ans =

        2

        4

     

    find(0 < x & x < 10*pi)

    ans =

        1

    Example 6

    For the matrix

    M = magic(3)

    M =

        8     1     6

        3     5     7

        4     9     2

     

    find(M > 3, 4)

    returns the indices of the first fourentries of M that are greater than 3.

    ans =

        1

        3

        5

        6

    Example 7

    If X is a vector of all zeros, find(X)returns an empty matrix. For example,

    indices = find([0;0;0])

    indices =

      Empty matrix: 0-by-1

     

    转载自:https://blog.csdn.net/h2008066215019910120/article/details/11820363

    展开全文
  • MATLAB find 函数用法

    2019-10-04 10:03:52
    我们以向量A=[0 1 2 3 4 5 6 7 8] 为例,在MATLAB主窗口中输入如下命令: A = [0 1 2 3 4 5 6 7 8]; find(A) 将会得到 ans = 2 3 4 5 6 7 8 9 (2)返回矩阵中非零元素的位置 find(A) 我们以矩阵A=[1 2 0 1; 0 2 1 ...
  • MATLAB find函数用法

    千次阅读 2018-06-17 19:36:10
    ind = find(X) ind = 1 3 4 8 9返回的是向量X中的非零元素索引值2,X = [1 0 4 -3 0 0 0 8 6]; ind = find(X&gt;2) ind = 3 8 9返回向量中满足大于2的元素的索引值3,当X是个矩阵时,X = ...
  • matlab find函数用法

    2014-05-24 20:59:55
    find函数:用于查询非零元素的行和列标志 语法: ind = find(X) ind = find(X, k) ind = find(X, k, 'first') ind = find(X, k, 'last') [row,col] = find(X, ...) [row,col,v] = find(X...
  • MATLAB find函数的运用

    千次阅读 2016-09-28 10:14:17
    find函数的运用方法: b=find(a) b=find(a,2,'first') b=find(a,2,''last') b=find(a>4) [i,j]=find(a>4) [i,j,v]=find(a) [i,j,v]=find(a>4)
  • find(X) %竖着数,分别对应1-9 X1=[1 2 0 1;0 2 1 1;0 0 1 1]; find(X1==1) find(X1,5) %返回X1前5个非0的数 find(X1,1,'last') %返回最后一个非零值的位置find(A,1,‘last’) 自己的问题 find(lon_IS(:,1)...
  • find 找到非零元素的索引和值 语法: 1. ind = find(X) 2. ind = find(X, k) 3. ind = find(X, k, 'first') 4. ind = find(X, k, 'last') 5. [row,col] = find(X, ...) 6. [row,col,v] = find(X, ...) 说明...
  • Matlab find函数的用法

    2015-04-19 17:42:21
    find()函数是用来查询满足要求非零值在矩阵中位置的函数,可以返回元素在其中的位置等,下面就通过实例介绍一下不同函数的用法。 返回向量中非零元素的位置 find(A) 我们以向量A=[0 1 2 3 4 5 6 7 8] 为例...
  • 上千万条数据判断大于零和小于零并分别进行运算,第一想到if语句...然后重新构思,找到符合条件的数据所在位置,然后再把那个位置的数值运算就好了嘛,用find函数! so [row1,col1] = find(a(:,1)>=0); [row2,col2]
  • 三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y...
  • MATLAB find()函数二维数组找最值 在python中对应 np.where()函数,取最后一个结果就行!! 简短截说,上代码 MATLAB源码: [max_Ix, max_Iy]=find(garyimg1==max(max(garyimg1))) max_Ix = max_Ix(1,1); max_Iy = ...
  • 有那些相见恨晚的MATLAB绘图命令MATLAB的绘图功能可谓非常的强大,常用的有plot,plot3,subplot,scatter等等,这些函数有许多的参数设置,可以画出各种需求的图。但是这些强大的绘图命令也有无能为力的时候。为什么呢...
  • Matlab find函数用法,全面解析

    千次阅读 2016-06-10 22:37:12
    ind = find(X) 查询非零元素的位置 如果X是一个行向量,则返回一个行向量, 否则,返回一个列向量。 如果X全是零元素或者是空数组,则返回一个空数组。 [row,col V] = find(X, ...) 查询...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 607
精华内容 242
关键字:

matlabfind函数

matlab 订阅