poster
2019-12-14, 20:13
我有一个包含整数的大向量(长度:230 400,int8),我将其重新排列成3维矩阵(行:240,列:320,深度:3)。完成此操作后,新矩阵将包含双精度而不是整数(根据Matlab工作区)。
整个操作需要0.3秒,对于我来说,这太长了。
Matlab在将它们放入矩阵之前是否将数组中的整数转换为双精度?可以避免这种情况以加快速度吗?
一些代码:
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; 谢谢!
回答:
尝试使用初始化矩阵
A=zeros(240, 320, 3, 'int8')
更多&回答... (https://stackoverflow.com/questions/4768486)
整个操作需要0.3秒,对于我来说,这太长了。
Matlab在将它们放入矩阵之前是否将数组中的整数转换为双精度?可以避免这种情况以加快速度吗?
一些代码:
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; 谢谢!
回答:
尝试使用初始化矩阵
A=zeros(240, 320, 3, 'int8')
更多&回答... (https://stackoverflow.com/questions/4768486)