24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1268  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wangyongjian

金虫 (初入文坛)

[求助] 一段MATLAB代码向量化

各位大神好,小弟在进行元胞自动机相关工作时候,觉得目前代码速度太慢。想将其向量化,下面这段想了好久还是不得其解。
首先,不知道能不能向量化?
第二,如果能,不知道怎么办?
所以再次求助各位路过的大神,将下列代码向量化!矩阵S见附件,为方便各位大神,附件code是下面代码的整洁版。
kk=500;    % 定义循环次数
N=size(S,1);
epss=0.0001;
for k=1:kk;   
     
    S2=S([end 1:end-1],  ;  % S 上近邻矩阵
    S8=S([2:end 1],;        % S 下近邻矩阵
    S4=S(:,[end 1:end-1]);    % S 左近邻矩阵
    S6=S(:,[2:end 1])  ;      % S 右近邻矩阵
    S1=S2(:,[end 1:end-1]);   % S 左上近邻矩阵
    S3=S2(:,[2:end 1]);       % S 右上近邻矩阵
    S7=S8(:,[end 1:end-1]);   % S 左下近邻矩阵
    S9=S8(:,[2:end 1]);       % S 右下近邻矩阵

    Va1=zeros(N,N);   %预分配矩阵
    DE=zeros(N,N);   %预分配矩阵
    P2=zeros(N,N);   %预分配矩阵

   for m=1:N;
      for n=1:N;
         Va=[S1(m,n),S2(m,n),S3(m,n),S4(m,n),S6(m,n),S7(m,n),S8(m,n),S9(m,n)];
             B=(sum(abs(S(m,n)-Va))<epss);  
               
               La=find(Va<=0);
               Lb=find(Va>0);  
         if  S(m,n)>0   
             E0=0.4*(length(Lb)-sum(abs(S(m,n)-Va(Lb))<epss));
             index=round(1+7.*rand);  %定义索引指数
             Va1(m,n)=Va(index);   %抽取的邻居
             if   (Va1(m,n)>0 )    %必须找到非0的邻居来转变
               E1=0.4*(length(Lb)-sum(abs(Va(index)-Va(Lb))<epss));%转变后元素的状态
                DE(m,n)=E1-E0;     %计算转变前后的状态值之差
                P2(m,n)=1.*(DE(m,n)<=0);  %计算转变概率
             end
         end
      end
   end
      R2=rand(N,N);    % 生成随机数与P1来比较
      C0=(R2<P2);     % C0=1表示元胞转变成功,C0=0表示元胞转变不成功
      S0 =S;     % 记录当前状态,
    %////// 按规则的优先级由低到高执行2个规则
    S =S0.*(1-C0)+ C0.*Va1;    % 规则2,选取降幅最大的元胞转变
    S((B>0.5))=S0((B>0.5));    % 规则1,不转变
    SA=S;   %把矩阵保存在另一个数组里,用作显示矩阵
  
     for m=1:N-1    % 对矩阵里面的所有元胞扫描
        for n=1:N-1  % 对矩阵里面的所有元胞扫描
            if((SA(m,n)>=1 && SA(m,n+1)>=1 && SA(m,n)~=SA(m,n+1))) %如果左右相邻的元胞不相等
                SA(m,n)=0; % 将元胞显示状态值置为0     
              % SA(m,n+1)=0; %将元胞右邻居显示状态值置为0
            end;
            if((SA(m,n)>=1 && SA(m+1,n)>=1 && SA(m,n)~=SA(m+1,n))) %如果上下相邻的元胞不相等
               SA(m,n)=0;    % 将元胞显示状态值置为0   
              % SA(m+1,n)=0;  %将元胞下邻居显示状态值置为0
            end;
        end;
    end;            
end
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : Code.m
  • 2015-12-28 18:52:19, 2.23 K
  • 附件 2 : S.mat
  • 2015-12-28 18:52:19, 7.91 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

混不好我就不回来了
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

wangyongjian

金虫 (初入文坛)

再顶一下。不要沉。
混不好我就不回来了
5楼2015-12-30 10:13:49
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

tk凌峰人

银虫 (著名写手)

不要沉入海底

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

宁静致远
4楼2015-12-29 12:14:56
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

wangyongjian

金虫 (初入文坛)

送红花一朵
引用回帖:
4楼: Originally posted by tk凌峰人 at 2015-12-29 12:14:56
不要沉入海底

6楼2015-12-30 15:07:23
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 304求调剂 +7 castLight 2026-04-16 7/350 2026-04-17 20:05 by 关一盏灯cd
[考博] 求博导|生物质基多孔碳/超级电容方向,已有相关成果,寻能源材料/碳材料方向老师 +3 猪猪人Zzz 2026-04-12 3/150 2026-04-17 19:10 by 阳阳阳^_^
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[考研] 320求调剂 +4 深郊akm 2026-04-17 4/200 2026-04-17 17:32 by 一切OK
[考研] 0831生医工第一轮调剂失败求助 +14 小熊睿睿_s 2026-04-11 18/900 2026-04-16 20:41 by lpl364211
[考研] 一志愿沪9,生物学326求调剂 +9 刘墨墨 2026-04-15 9/450 2026-04-16 17:14 by 崔崔崔cccc
[考研] 297,工科调剂?河南农业大学本科 +14 河南农业大学-能 2026-04-14 14/700 2026-04-16 14:41 by dingyanbo1
[基金申请] RY:中国产出的科学垃圾论文,绝对数量和比例都世界第一 +7 zju2000 2026-04-14 18/900 2026-04-16 11:36 by 欢乐颂叶蓁
[考研] 322求调剂 +8 123安康 2026-04-12 15/750 2026-04-16 11:07 by Espannnnnol
[考研] 求调剂推荐 +8 小聂爱学习 2026-04-14 8/400 2026-04-16 07:22 by 学员JpLReM
[考研] 通信工程求调剂!!! +6 zlb770521 2026-04-14 6/300 2026-04-15 20:00 by 学员JpLReM
[考研] 调剂 +12 月@163.com 2026-04-11 12/600 2026-04-14 15:37 by zs92450
[考研] 271求调剂 +35 2261744733 2026-04-11 41/2050 2026-04-14 15:36 by zs92450
[考研] 农学0904 312求调剂 +4 Say Never 2026-04-11 4/200 2026-04-14 09:10 by zs92450
[考研] 一志愿中南大学 0855 机械 286 求调剂 +11 不会吃肉 2026-04-12 11/550 2026-04-13 21:59 by bljnqdcc
[考研] B区0809 ,数一英一,290 求调剂 +3 泠潍1111 2026-04-12 4/200 2026-04-13 20:35 by 学员JpLReM
[考研] 0854调剂 +10 长弓傲 2026-04-11 11/550 2026-04-13 10:38 by wp06
[考研] 0831一轮调剂失败求助 +10 小熊睿睿_s 2026-04-11 10/500 2026-04-12 22:43 by 长弓傲
[考研] 一志愿浙大生物325分求调剂 +9 zysheng 2026-04-12 9/450 2026-04-12 22:31 by yuyin1233
[考研] 求调剂,一志愿大连理工大学354分 +5 雨声余生 2026-04-11 6/300 2026-04-11 16:12 by 雨声余生
信息提示
请填处理意见