如何转动矩阵: [ 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
请注意,与您的示例相比,索引是相反的.