Matlabのreshape関数
変換元:http://blog.sina.com.cn/s/blog_9444ed240101dxx3.html
Matlabのhelpドキュメントを見るとよくわかりません.
前のコードを渡します.
>> a=[1 2 3;4 5 6;7 8 9;10 11 12];
>> b=reshape(a,2,6);
このコードの結果は次のとおりです.
>> a
1 2 3
4 5 6
7 8 9
10 11 12
>> b
1 7 2 8 3 9
4 10 5 11 6 12
b=reshape(a,m,n)について;
その法則は、マトリクスaを列ごとに分割し、m*nの大きさのベクトルに接合することである.そして、このベクトルに対してm間隔ごとに1つの要素を取って1つのベクトルb_を構成するi,その後のベクトルb_i+1もこのように生成されるが,最初の要素は1ビット下にシフトするだけである.これにより、m個の大きさnの行ベクトルが得られ、これらの行ベクトルをつなぎ合わせるとマトリクスbが得られる.
後記:卒業設計でベクトル変換を用い、最初は葛藤し、サイクルで実現した.1000回以上反復するには2秒かかります.その後reshape関数を使って、全部で0.03秒しかかかりませんでした.私のこの深さ強迫症患者にとって、この2秒の時間は私はやはり貴重に見ています.はは.
後でmatlabを書くには鑑として、forループをできるだけ少なくし、マトリクスやベクトルで処理します.
Matlabのhelpドキュメントを見るとよくわかりません.
前のコードを渡します.
>> a=[1 2 3;4 5 6;7 8 9;10 11 12];
>> b=reshape(a,2,6);
このコードの結果は次のとおりです.
>> a
1 2 3
4 5 6
7 8 9
10 11 12
>> b
1 7 2 8 3 9
4 10 5 11 6 12
b=reshape(a,m,n)について;
その法則は、マトリクスaを列ごとに分割し、m*nの大きさのベクトルに接合することである.そして、このベクトルに対してm間隔ごとに1つの要素を取って1つのベクトルb_を構成するi,その後のベクトルb_i+1もこのように生成されるが,最初の要素は1ビット下にシフトするだけである.これにより、m個の大きさnの行ベクトルが得られ、これらの行ベクトルをつなぎ合わせるとマトリクスbが得られる.
後記:卒業設計でベクトル変換を用い、最初は葛藤し、サイクルで実現した.1000回以上反復するには2秒かかります.その後reshape関数を使って、全部で0.03秒しかかかりませんでした.私のこの深さ強迫症患者にとって、この2秒の時間は私はやはり貴重に見ています.はは.
後でmatlabを書くには鑑として、forループをできるだけ少なくし、マトリクスやベクトルで処理します.