MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB基础] 如何利用matlab排列提取下面矩阵的元素,得到想要的矩阵 (https://www.labfans.com/bbs/showthread.php?t=12372)

shenchenghit 2010-12-09 21:14

如何利用matlab排列提取下面矩阵的元素,得到想要的矩阵
 
如何利用matlab排列提取下面矩阵的元素,得到想要的矩阵:
1,1,1,1,6.999999999999999e+009
1,6,1,1,4.857225732735061e-008
2,1,1,1,-6.999999999999999e+009
2,6,1,1,-4.857225732735061e-008
1,2,1,2,1.830769230769231e+009
1,6,1,2,9.153846153846153e+008
2,2,1,2,-1.830769230769231e+009
2,6,1,2,9.153846153846153e+008
1,6,1,6,1.041025641025641e+009
2,1,1,6,-4.857225732735061e-008
2,2,1,6,-9.153846153846153e+008
2,6,1,6,-1.256410256410256e+008
2,1,2,1,6.999999999999999e+009
2,6,2,1,4.857225732735061e-008
2,2,2,2,1.830769230769231e+009
2,6,2,2,-9.153846153846153e+008
2,6,2,6,1.041025641025641e+009

说明:
以上矩阵是由有限元软件输出的,故有一定的规则。目标矩阵(想要得到的6*6的矩阵)是一个对称矩阵,其中左下角(包含对角线)的非零元素由上面矩阵第五列组成。

具体规则如下:
先作如下规定:11——表示1, 12——表示2, 16——表示3,21—表示4, 22——表示5, 26——表示6
拿第一行元素来说,第一个、第二个元素为1和1,即为11,此时代表第五个元素在目标矩阵第1列,第三个和第四个元素也为1和1,即为11则代表第五个元素在目标矩阵的第一行,故6.999999999999999e+009为目标矩阵的第一行,第一列元素。
再拿最后一行元素来说,第一个、第二个元素为2和6,即为26,此时代表第五个元素在目标矩阵第6列,第三个和第四个元素也为2和6,即为26,则代表第五个元素在目标矩阵的第6行,故1.041025641025641e+009为目标矩阵的第6行,第6列元素。
其他类似。

不知道我说清楚了没有,希望高手帮个忙,非常感谢!

anbcjys 2010-12-11 07:39

回复: 如何利用matlab排列提取下面矩阵的元素,得到想要的矩阵
 
用你的规则循环实现即可


所有时间均为北京时间。现在的时间是 12:35

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