A=mexLasso(x,D,param);
A=full(A);
A是经过稀疏编码后的系数矩阵
dsize在for循环里面依次为200.300.400
voxelnum=262309
求朋友们帮我看一下,这一段代码有没有问题或者需要怎么优化一下,因为会出现内存报错,或者是运行特别特别长时间,中间那几个for循环怎么改为矩阵操作或者模板处理
%ttest
AA=reshape(A,dsize,voxelnum1,2); %
for timesession =1:2
AA_reshape = AA(:,:,timesession);
fprintf('.');
C = [];
k=1;
for i = 1:dsize
for j=1:voxelnum
for n=0:size(AA_reshape,2)/voxelnum-1
C(i, k) = AA_reshape(i ,1+n*voxelnum);
k = k + 1;
end
end
end
C = reshape(C,size(AA_reshape,2)/voxelnum , dsize*voxelnum);
内存不足解决方法:https://ww2.mathworks.cn/help/matlab/matlab_prog/resolving-out-of-memory-errors.html
还有可以开个并行计算加速
给变量预分配内存,然后删掉点没用的循环吧