| 查看: 1147 | 回复: 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
- 附件 2 : S.mat
2015-12-28 18:52:19, 2.23 K
2015-12-28 18:52:19, 7.91 K
» 猜你喜欢
A期刊撤稿
已经有5人回复
临港实验室与上科大联培博士招生1名
已经有8人回复
26申博自荐
已经有7人回复
想换工作。大多数高校都是 评职称时 认可5年内在原单位取得的成果吗?
已经有4人回复
带资进组求博导收留
已经有9人回复
求助大佬们,伤口沾上了乙腈
已经有6人回复
最近几年招的学生写论文不引自己组发的文章
已经有9人回复
» 本主题相关价值贴推荐,对您同样有帮助:
虫友们,我这边有一段matlab代码,但我运行不起来,大家能不能帮帮我?
已经有1人回复
求助高人帮忙写一段matlab代码
已经有0人回复
BP神经网络 MATLAB代码
已经有1人回复
一段图片序列批量存储到单个.dat文件中的代码,无法运行
已经有0人回复
求教一段matlab的代码
已经有5人回复
投稿需提交Matlab代码,不知道要怎么写代码解释等信息!
已经有9人回复
求助matlab一段代码问题
已经有3人回复
matlab图像匹配代码
已经有1人回复
matlab求逆矩阵是不是有问题?
已经有13人回复
UQPSK的simulink模块搭建或者matlab源代码
已经有0人回复
求一段源代码
已经有3人回复
matlab中if循环不起来,请求大牛帮助!
已经有11人回复
求助小波变换的函数,我的matlab中怎么没有啊?
已经有11人回复
【转帖】(分形)布朗运动的Matlab生成代码
已经有3人回复
【分享】关于Boltzmann 的计算代码(MATLAB)
已经有9人回复
【求助】一段很短的代码
已经有1人回复

wangyongjian
金虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 2103
- 红花: 2
- 帖子: 16
- 在线: 69.7小时
- 虫号: 1896594
- 注册: 2012-07-17
- 性别: GG
- 专业: 金属结构材料

2楼2015-12-28 22:02:34
wangyongjian
金虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 2103
- 红花: 2
- 帖子: 16
- 在线: 69.7小时
- 虫号: 1896594
- 注册: 2012-07-17
- 性别: GG
- 专业: 金属结构材料

3楼2015-12-29 11:45:11

4楼2015-12-29 12:14:56
wangyongjian
金虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 2103
- 红花: 2
- 帖子: 16
- 在线: 69.7小时
- 虫号: 1896594
- 注册: 2012-07-17
- 性别: GG
- 专业: 金属结构材料

5楼2015-12-30 10:13:49
wangyongjian
金虫 (初入文坛)
送红花一朵
|
6楼2015-12-30 15:07:23













; % S 上近邻矩阵
回复此楼