初级会员

- 积分
- 40
- 极客币
- 102
- 主题
- 14
- 帖子
- 46
- 注册时间
- 2018-10-19
- 在线时间
- 2 小时
- 性别
- 保密
|
5#

楼主 |
发表于 2018-11-20 16:51:12
|
只看该作者
应该是我没表示清楚,M是固定的,每一次的b是变化的,针对每一个新的循环选择出新的c,所以不能进行循环外的赋值。
- M=rand(64,40000);
- tic
- for i=1:4000
- b= randperm(40000,5000);
- c=M(:,b);
- end
- toc
复制代码
我原本的程序如下,dic这个赋值在整个循环中占用的时间最多,怎么可以改进
- <p>for i=1:l %此处l为循环的次数4000
- [minValue,col]=matchest(Wd,Wr(i,:),numd);
- dcol=[col col+3969 col+3969*2 col+3969*3 col+3969*4 col+3969*5 col+3969*6 col+3969*7];%得到需要取出的列数
- dic=DD(1:64,dcol);%在这个DD矩阵取出dcol,此处耗费较多时间,需要改进</p><p> %[res,rcell]=HBOMPD(dic,signal(:,i),xishudu,fscund,xuhao); %稀疏度设定为6,即非零元素最多为6个
- %b(:,i)=res;
- % Rcell(i)={rcell};
- end</p>
复制代码
|
|