在Matlab中使用find()的奇怪之处

时间:2015-07-18 09:41:12

标签: matlab

herehere的Matlab中学习使用find(),我遇到了以下用法,但找不到代码功能的解释。

X = [0.00000   0.00000   0.00000;
     4.24264   0.00000   0.00000;
     8.48528   4.24264   0.00000]

[A(:,1),A(:,2),A(:,3)] = find(X)

评估结果为:

A =
    2.0000   1.0000   4.2426                                                                                                                              
    3.0000   1.0000   8.4853                                                                                                                              
    3.0000   2.0000   4.2426

find()函数应返回一个列向量,但矩阵A如何初始化而没有错误?

1 个答案:

答案 0 :(得分:4)

根据documentation

如果指定三个输出变量:

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

find返回数组X和向量v中每个非零元素的行和列下标,其中包含X的非零元素。

row =

     2
     3
     3


col =

     1
     1
     2


v =

    4.2426
    8.4853
    4.2426

在您的情况下,这三个向量被分配到矩阵A的列。