matlab eig sort

来源:互联网 发布:电脑无法连接网络叹号 编辑:程序博客网 时间:2024/05/01 07:35

MatLab排序函数

sort函数的调用格式:  

sort(X)   功能:返回对向量X中的元素按列升序排列的新向量。

[Y, I] = sort(A, dim, mode) 功能:对矩阵A的各列或各行重新排序,I记录Y中的元素在排序前A中位置,其中dim指明读A的列还是行进行排序。若dim=1,则按列排序;若dim=2,则按行排序。mode为排序的方式,取值'ascend'为升序,'descend'为降序。




[plain] view plaincopyprint?
  1. >> a=[1 2 3;3 9 6;4 10 8 ; 4 0 7]  
  2.   
  3. a =  
  4.   
  5.      1     2     3  
  6.      3     9     6  
  7.      4    10     8  
  8.      4     0     7  
  9.   
  10. >> sort(a)  
  11.   
  12. ans =  
  13.   
  14.      1     0     3  
  15.      3     2     6  
  16.      4     9     7  
  17.      4    10     8  
  18.   
  19. >> sort(a,1)  
  20.   
  21. ans =  
  22.   
  23.      1     0     3  
  24.      3     2     6  
  25.      4     9     7  
  26.      4    10     8  
  27.   
  28. >> sort(a,1,'descend')  
  29.   
  30. ans =  
  31.   
  32.      4    10     8  
  33.      4     9     7  
  34.      3     2     6  
  35.      1     0     3  
  36.   
  37. >> sort(a,2)  
  38.   
  39. ans =  
  40.   
  41.      1     2     3  
  42.      3     6     9  
  43.      4     8    10  
  44.      0     4     7  
  45.   
  46. >> sort(a,2,'descend')  
  47.   
  48. ans =  
  49.   
  50.      3     2     1  
  51.      9     6     3  
  52.     10     8     4  
  53.      7     4     0  
  54.   
  55. >>   
[      >> b=[2 5 7 3 9 1 6]  
  1.   
  2. b =  
  3.   
  4.      2     5     7     3     9     1     6  
  5.   
  6. >> [Y,I] = sort(b)  
  7.   
  8. Y =  
  9.   
  10.      1     2     3     5     6     7     9  
  11.   
  12.   
  13. I =  
  14.   
  15.      6     1     4     2     7     3     5  
  16.   
  17. >>   

 

 

 

       在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有
5种:
(1) E=eig(A):求矩阵A的全部特征值,构成向量E。
(2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成

V的列向量。
(3) [V,D]=eig(A,'nobalance'):与第2种格式类似,但第2种格式中先对A作相似

变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。

(4) E=eig(A,B):由eig(A,B)返回N×N阶方阵A和B的N个广义特征值,构成向量E


(5) [V,D]=eig(A,B):由eig(A,B)返回方阵A和B的N个广义特征值,构成N×N阶对

角阵D,其对角线上的N个元素即为相应的广义特征值,同时将返回相应的特征向

量构成N×N阶满秩矩阵,且满足AV=BVD。

eig

Find eigenvalues and eigenvectors
Syntax

d = eig(A)
d = eig(A,B)
[V,D] = eig(A)
[V,D] = eig(A,'nobalance')
[V,D] = eig(A,B)
[V,D] = eig(A,B,flag)

    d = eig(A)和 [V,D] = eig(A)最为常用 注意,第一列为对应第一个特征值的特征向量。

    附录:

    matlab中关于eig的说明:

    EIG    Eigenvalues and eigenvectors.
    E = EIG(X) is a vector containing the eigenvalues of a square
    matrix X.
 
    [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a
    full matrix V whose columns are the corresponding eigenvectors so
    that X*V = V*D.
 
    [V,D] = EIG(X,'nobalance') performs the computation with balancing
    disabled, which sometimes gives more accurate results for certain
    problems with unusual scaling. If X is symmetric, EIG(X,'nobalance')
    is ignored since X is already balanced.
 
    E = EIG(A,B) is a vector containing the generalized eigenvalues
    of square matrices A and B.
 
    [V,D] = EIG(A,B) produces a diagonal matrix D of generalized
    eigenvalues and a full matrix V whose columns are the
    corresponding eigenvectors so that A*V = B*V*D.
 
    EIG(A,B,'chol') is the same as EIG(A,B) for symmetric A and symmetric
    positive definite B.  It computes the generalized eigenvalues of A and B
    using the Cholesky factorization of B.
    EIG(A,B,'qz') ignores the symmetry of A and B and uses the QZ algorithm.
    In general, the two algorithms return the same result, however using the
    QZ algorithm may be more stable for certain problems.
    The flag is ignored when A and B are not symmetric.

 

   如果被分解的矩阵是对称矩阵,特征值就会从小到大排列,但是如果是一般矩阵就没有什么规律。尝试一下用eigs替换eig。

 


本文来自: 高校自动化网(Www.zdh1909.com) 详细出处参考(转载请保留本链接):http://www.zdh1909.com/html/matlab/17910.html

原创粉丝点击