1

次のマトリックスがあります。

50,60,55,67,70
62,65,70,70,81
72,66,77,80,69

ここで、行列をベクトルに変換しますが、行優先です。これにより、次のベクトルが得られます。

50,60,55,67,70,62,65,70,70,81,72,66,77,80,69

ここで、このベクトルを上記と同じ行列に変換したいと思います。問題は、reshape(matrix,[3,5])Matlab が列優先で動作するため、それが機能しないことです。

これを効率的に行うにはどうすればよいですか (大規模な行列の場合)。

4

1 に答える 1

4

これを解決するには、

reshape(matrix,[5,3]).'

最初に行と列の次元を交換して reshape を使用すると、正しい順序で転置された行列が得られ、次に転置を使用して正しい出力が得られます。

制御システム ツールボックスがあれば、次も使用できます。vec2mat

于 2016-02-15T17:38:11.837 に答える