Matlabで1×Nのサイズのベクトルを2次元配列に変換
まずは変換のルールを確認
3×4の2次元配列を用意。
>> a=[[1 2 3 4]; [5 6 7 8]; [9 10 11 12]] a = 1 2 3 4 5 6 7 8 9 10 11 12
reshape()で1×Nに変換。列方向に拾って1×Nを作る様子。
>> b=reshape(a,1,[]) b = 1 5 9 2 6 10 3 7 11 4 8 12
4列の形にしてほしいので、reshape()でn×4に変換。元に戻りました。
>> c=reshape(b,[],4) c = 1 2 3 4 5 6 7 8 9 10 11 12
元に戻りました。
行方向で2次元配列を拾って行ってほしい
手元にあるデータの並びは行方向に拾った感じのデータなので、それを2次元配列にしたい。
1×nのベクトルを用意。
>> d=[1 2 3 4 5 6 7 8 9 10 11 12] d = 1 2 3 4 5 6 7 8 9 10 11 12
あとで転置するので、行を4行になるようにreshape()
>> e=reshape(d,4,[]) e = 1 5 9 2 6 10 3 7 11 4 8 12
転置すると期待通りに。
>> f=transpose(e) f = 1 2 3 4 5 6 7 8 9 10 11 12