基于Matlab来计算矩阵特征值和特征向量
2011-05-27 14:55
671 查看
简介
线性代数相关领域中,矩阵操作一般是核心内容。对矩阵的特征值和特征向量的计算一直在数值计算占有重要位置。这里介绍一种根据指定个数来返回矩阵特征值及特征向量的方式。
实例
% By lyqmath
% Dalian University of Technology
% School of Mathematical Sciences 2008
% BOLG: http://blog.csdn.net/lyqmath
% 取指定特征值对应的特征向量
clc; clear all; close all;
A = [1 3 7
3 8 9
5 4 6];
k = 2;
[V, D] = eig(A);
% 返回的V是以列向量对应的特征向量
% D是对角线上为特征值的矩阵
D = diag(D);
[D, I] = sort(D, 'descend');
% 得到了对应的排序
if k > length(D)
k = length(D);
end
temp(1) = {D(1 : k)};
temp(2) = {V(:, I(1 : k))};
fprintf('/n 前k个最大特征值 : /n');
celldisp(temp(1));
fprintf('/n 前k个最大特征值对应的特征向量 : /n');
celldisp(temp(2));
结果
总结
MATLAB提供了eig来计算矩阵的特征值、特征向量信息。如果再结合使用MATLAB的排序函数等资源,可以综合利用来解决问题。
线性代数相关领域中,矩阵操作一般是核心内容。对矩阵的特征值和特征向量的计算一直在数值计算占有重要位置。这里介绍一种根据指定个数来返回矩阵特征值及特征向量的方式。
实例
% By lyqmath
% Dalian University of Technology
% School of Mathematical Sciences 2008
% BOLG: http://blog.csdn.net/lyqmath
% 取指定特征值对应的特征向量
clc; clear all; close all;
A = [1 3 7
3 8 9
5 4 6];
k = 2;
[V, D] = eig(A);
% 返回的V是以列向量对应的特征向量
% D是对角线上为特征值的矩阵
D = diag(D);
[D, I] = sort(D, 'descend');
% 得到了对应的排序
if k > length(D)
k = length(D);
end
temp(1) = {D(1 : k)};
temp(2) = {V(:, I(1 : k))};
fprintf('/n 前k个最大特征值 : /n');
celldisp(temp(1));
fprintf('/n 前k个最大特征值对应的特征向量 : /n');
celldisp(temp(2));
结果
总结
MATLAB提供了eig来计算矩阵的特征值、特征向量信息。如果再结合使用MATLAB的排序函数等资源,可以综合利用来解决问题。
相关文章推荐
- 基于Matlab来计算矩阵特征值和特征向量
- 矩阵特征值特征向量计算
- matlab求矩阵特征值和特征向量、行列式
- 一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度
- 深度学习中的数学与技巧(7):特征值和特征向量的几何意义、计算及其性质
- 分层K-Means+Matlab计算向量间距离
- 零基础求矩阵特征值和特征向量
- 特征值 特征向量 广义特征值 matlab
- 数字图像处理:第十一章基于特征向量的变换
- matlab求矩阵前k小的特征值和对应的特征向量
- shingling算法——提取特征,m个hash函数做指纹计算,针对特征hash后变成m维向量,最后利用union-find算法计算相似性
- 利用SVD分解求解协方差的特征值以及特征向量--matlab
- 幂法求解矩阵特征值及特征向量
- 运用opencv计算特征向量
- 基于基因表达谱的肿瘤特征基因提取算法MATLAB源代码
- 基于Gabor特征提取和人工智能神经网络的人脸检测matlab代码
- 基于Boost方法的人脸检测(3):特征生成、特征值计算(积分图)
- 特征向量相似度和距离计算方法
- 数值计算程序-特征值和特征向量 [转]
- matlab关于特征值、特征向量的技巧