当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – 在MATLAB中展开矩阵的最快方法是什么?

来源:互联网 收集:自由互联 发布时间:2021-06-22
如何转动矩阵: [ 0.12 0.23 0.34 ; 0.45 0.56 0.67 ; 0.78 0.89 0.90 ] 进入一个带有一堆行的’坐标’矩阵? [ 1 1 0.12 ; 1 2 0.23 ; 1 3 0.34 ; 2 1 0.45 ; 2 2 0.56 ; 2 3 0.67 ; 3 1 0.78 ; 3 2 0.89 ; 3 3 0.90 ] (行的排列是
如何转动矩阵:

[ 0.12 0.23 0.34 ;
  0.45 0.56 0.67 ;
  0.78 0.89 0.90 ]

进入一个带有一堆行的’坐标’矩阵?

[ 1 1 0.12 ;
  1 2 0.23 ;
  1 3 0.34 ;
  2 1 0.45 ;
  2 2 0.56 ;
  2 3 0.67 ;
  3 1 0.78 ;
  3 2 0.89 ;
  3 3 0.90 ]

(行的排列是无关紧要的,只有数据在这个结构中才重要)

现在我正在使用for循环,但这需要很长时间.

这是一个使用ind2sub的选项:

mat= [ 0.12 0.23 0.34 ;
  0.45 0.56 0.67 ;
  0.78 0.89 0.90 ] ;

[I,J] = ind2sub(size(mat), 1:numel(mat));
r=[I', J', mat(:)]

r =

    1.0000    1.0000    0.1200
    2.0000    1.0000    0.4500
    3.0000    1.0000    0.7800
    1.0000    2.0000    0.2300
    2.0000    2.0000    0.5600
    3.0000    2.0000    0.8900
    1.0000    3.0000    0.3400
    2.0000    3.0000    0.6700
    3.0000    3.0000    0.9000

请注意,与您的示例相比,索引是相反的.

网友评论