3次元行列(行:240、列:320、深さ:3)に並べ替える整数(長さ:230,400、int8)を含む大きなベクトルがあります。これが完了すると、新しいマトリックスにはintの代わりにdoubleが含まれます(Matlab Workspaceによる)。Matlabで倍数ではなく整数を含む行列
全体の操作には0.3秒かかりますが、これは長時間です。
Matlabは、行列のintを行列に入れる前にdouble型に変換していますか? これを回避するとスピードアップできますか?
いくつかのコード:
tic;
A=zeros(240,320,3);
%A is matrix, B is vector.
for i=1:240
for j=1:320
A(i,j,:)=B(1+(j-1)*3+(i-1)*320*3:3+(j-1)*3+(i-1)*320*3);
end
end
toc;
ありがとう!
のクラスを保持しますB.に再構築を使用します。しかし、時間はわずか0.03秒で短縮されました.... –