Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-01, 06:46   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 如何将对角矩阵的实部以及另一个矩阵中的对应特征向量重新排序?

我正在从教科书上处理MatLab问题,其中一个问题要求我在MATLAB中使用eig命令,计算矩阵V和D,使A = V * D * inv(V)。知道V的第一列对应于第一特征值D(1,1)等等,我需要对D的对角线条目进行重新排序,以使实部沿对角线增加,并相应地对V的列进行重新排序,以便A = V * D * inv(V)仍然成立。到目前为止,这是我写的内容:

r = RandStream('mt19937ar','Seed',1234); A = r.randn(10,10)+1j*r.randn(10,10); [V,D] = eig(A); for tt = 1:9 if (real(D(tt,tt)) > real(D(tt+1,tt+1))) temp = D(tt,tt); D(tt,tt) = D(tt+1,tt+1); D(tt+1,tt+1) = temp; tempV = V(1,tt); V(1,tt) = V(1,tt+1); V(1,tt+1) = tempV; if (A == V*D*inv(V)) break end end end 当我测试它时,D的对角元素与原始顺序没有变化,我知道这可能是由于我设置的条件引起的,但是我不确定是什么原因导致它不执行任何操作。我还认为重新排序对角线元素和相应特征向量的方式可能存在问题。感谢您的任何反馈或建议,谢谢。



更多&回答...
poster 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:57


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.