PDA

查看完整版本 : [MATLAB基础] 如何利用matlab排列提取下面矩阵的元素,得到想要的矩阵


shenchenghit
2010-12-09, 21:14
如何利用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
用你的规则循环实现即可