版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(4762)
>
虫友互识
(639)
>
文献求助
(368)
>
导师招生
(204)
>
休闲灌水
(177)
>
硕博家园
(139)
>
考博
(122)
>
招聘信息布告栏
(117)
>
论文投稿
(99)
>
博后之家
(83)
>
论文道贺祈福
(60)
>
基金申请
(53)
>
找工作
(51)
>
教师之家
(48)
>
绿色求助(高悬赏)
(44)
>
考研
(34)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
计算模拟
»
matlab生成随机行走网格 模拟材料生长
5
1/1
返回列表
查看: 7538 | 回复: 26
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
【奖励】
本帖被评价16次,作者dbb627增加金币
11.8
个
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
dbb627
荣誉版主
(著名写手)
专家经验: +4
计算强帖: 12
应助: 289
(大学生)
贵宾: 0.589
金币: 24640.4
帖子: 1246
在线: 1794.8小时
虫号: 149791
[
资源
]
matlab生成随机行走网格 模拟材料生长
这个板块帖子太少,发一个增加点人气,原始问题见
http://muchong.com/bbs/viewthread.php?tid=3723739
算法如下:
随机生长的步骤如下:
1) 建立材料生长的初始网格,并设定所有网格材料皆为主相;
2) 定义生长相的生长核分布概率数,Cd,其大小不大于此生长相的体积分数。对系统网格的每个单元采用在(0,1)内均匀分布的随机函数赋随机数,其值若小于Cd,则认为此单元为生长相的一个生长核。其次,对每一个生长核,使其从各个方向上向其周围临近网格单元扩张,生长时,每一个方向上需设定一个方向增长概率数,Di,下标i代表方向。每一个生长核,其周围各个单元均会被赋值一个随机数,其值若不大于该方向上的方向增长概率数,则此单元同样成为一个新的生长相。
3)重复步骤二直至此生长相的体积分数到达其给定值。
原帖给的程序不完整,这里重写,并优化了
CODE:
function growth
%作者:dbb627
%2011.10.27
%======设定初值=============
clc;clear;
rand('state',0);
set(gcf,'DoubleBuffer','on');%消除振动
Cd=0.01;%生长核分布概率数
Vr=0.3;%生长相的体积分数
global kn
kn=500;
p=[1/8 1/8 1/8 1/8 1/4 1/4 1/4 1/4];%方向增长概率数
A=rand(kn,kn);%初始网格kn×kn
A(find(A<=Cd))=0;%黑色,生长核
A(find(A>Cd))=1;%白色
imshow(A,'InitialMagnification','fit')%初始图像
k=0;%迭代步骤
N=kn*kn;%格点数
[x,y]=find(A==0);%生长核脚标
Ixy=sub2ind([kn,kn],x,y); % 转化脚标为索引
gn=length(Ixy);%生长核计数
Vs=gn/N; %体积分数
ti=title(['time = 0 体积分数=',num2str(Vs)],'Fontsize',14,'Fontname','Times new roman'); % 在图题处实时显示时间
%===========================
while Vs
xL=x-1;xR=x+1;
xL(xL==0)=1;% 对近邻进行边界条件处理
xR(xR==kn+1)=kn;% 对近邻进行边界条件处理
yD=y-1;yU=y+1;
yD(yD==0)=1;% 对近邻进行边界条件处理
yU(yU==kn+1)=kn;% 对近邻进行边界条件处理
InE=sub2ind([kn,kn],xR,y); % 右方转化脚标为索引
InS=sub2ind([kn,kn],x,yD); % 下方转化脚标为索引
InW=sub2ind([kn,kn],xL,y); % 左方转化脚标为索引
InN=sub2ind([kn,kn],x,yU); % 上方转化脚标为索引
InEN=sub2ind([kn,kn],xR,yU); % 右上方转化脚标为索引
InES=sub2ind([kn,kn],xR,yD); % 右下方转化脚标为索引
InWS=sub2ind([kn,kn],xL,yD); % 左下方转化脚标为索引
InWN=sub2ind([kn,kn],xL,yU); % 左上方转化脚标为索引
%===用函数的方法写八个方向的生长迭代=====
[A,Ixy]=growthmod(InE,Ixy,p(5),A);
[A,Ixy]=growthmod(InS,Ixy,p(6),A);
[A,Ixy]=growthmod(InW,Ixy,p(7),A);
[A,Ixy]=growthmod(InN,Ixy,p(8),A);
[A,Ixy]=growthmod(InEN,Ixy,p(1),A);
[A,Ixy]=growthmod(InES,Ixy,p(2),A);
[A,Ixy]=growthmod(InWS,Ixy,p(3),A);
[A,Ixy]=growthmod(InWN,Ixy,p(4),A);
%==========做图========
[x,y]=find(A==0);
Ixy=sub2ind([kn,kn],x,y);
gn=length(Ixy);
Vs=gn/N %体积分数
k=k+1
pause(0.1)
imshow(A,'InitialMagnification','fit')%更新图像
title(['time = ',num2str(k),'体积分数=',num2str(Vs)],'Fontsize',14,'Fontname','Times new roman'); % 更新时间参数
end
function [A,Ixy]=growthmod(Ind1,Indxy,p,A)
%Ind1 当前方向索引
%,Indxy 当前生长核索引的
%p 当前方向的概率值
%A 当前的生长矩阵
global kn
CInE=setdiff(Ind1,Indxy);%提取非生长核边界格点索引
En=rand(1,length(CInE));%各个单元均会被赋值一个随机数
[i,j]=find(En<=p);%大于该方向上的方向增长概率数,则此单元同样成为一个新的生长相
pE=sub2ind([1,length(CInE)],i,j);%新的生长相索引的下标
A(CInE(pE))=0; %更新生长矩阵
[x,y]=find(A==0);%更新生长核坐标
Ixy=sub2ind([kn,kn],x,y);%更新生长核索引
生长动画
[
Last edited by dbb627 on 2011-10-27 at 10:19
]
回复此楼
» 收录本帖的淘帖专辑推荐
科研工具资源Nick
资源收集
小木虫matlab全部资源
科研工具专辑
科研相关
Matlab Study
自己阅读
晶粒长大及相关模拟
» 本帖已获得的红花(最新10朵)
howell26
» 猜你喜欢
求国际会议网站
已经有1人回复
求取一些关于纳米材料和纳米技术相关的英文PPT。
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有124人回复
【复旦大学】二维材料方向招收2026年博士研究生1名
已经有0人回复
北京纳米能源与系统研究所 王中林院士/曹南颖研究员课题组2026级硕/博/博后招生
已经有10人回复
荷兰Utrecht University超快太赫兹光谱王海教授课题招收2026 CSC博士生
已经有19人回复
反铁磁体中的磁性切换:两种不同的机制已成功可视化
已经有0人回复
26申博推荐:南京航空航天大学国际前沿科学研究院光学方向招收博士生!
已经有0人回复
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
» 本主题相关商家推荐:
(我也要在这里推广)
» 本主题相关价值贴推荐,对您同样有帮助:
如何该这段MATLAB程序(把一个常量改成变量)
已经有4人回复
MATLAB怎样产生周期性的0和1?
已经有6人回复
Matlab网格划分问题
已经有3人回复
关于随机双色球的一个程序
已经有12人回复
前处理软件如何生成网格
已经有8人回复
求助呀!为啥把网格尺寸调小,生成网格以后,面上就没有网格了?
已经有9人回复
matlab中如何产生逆高斯分布的随机数?
已经有9人回复
matlab求助???
已经有6人回复
如何用matlab画二维网格
已经有5人回复
matlab如何生成不同的随机数
已经有9人回复
如何用软件生成随机模拟数据
已经有5人回复
薄膜的生长问题
已经有21人回复
matlab产生随机二维矩阵,这些随机数只能是-1或者1?
已经有9人回复
网格生成再求助
已经有22人回复
二维随机行走运动
已经有11人回复
MATLAB如何随机分组数据
已经有9人回复
【求助】matlab生成旋转体?
已经有9人回复
【求助】如何在MATLAB中作出一个随机平面,急急急!!!
已经有3人回复
1楼
2011-10-27 09:20:06
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
dbb627
荣誉版主
(著名写手)
专家经验: +4
计算强帖: 12
应助: 289
(大学生)
贵宾: 0.589
金币: 24640.4
帖子: 1246
在线: 1794.8小时
虫号: 149791
引用回帖:
4522277楼
:
Originally posted by
张曙亮
at 2012-04-12 11:32:18:
??? Error using ==> imshow>ParseInputs
Unknown option string "fit"
Error in ==> imshow at 85
[cdata, cdatamapping, clim, map, xdata, ydata, filename, ...
Error in ==> ...
这个可能是你的matlab版本比较早,我实在2010b上运行的没问题
你可以把代码作下修改
找到对应两部分改为
A(find(A<=Cd))=0;%黑色,生长核
A(find(A>Cd))=255;%白色
image(A)%初始图像
pause(0.5)
image(A)
赞
一下
回复此楼
高级回复
14楼
2012-04-12 14:15:27
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 27 个回答
匿名
用户注销
(小有名气)
应助: 0
(幼儿园)
金币: 58.7
帖子: 141
在线: 95.5小时
虫号: 0
本帖仅楼主可见
赞
一下
2楼
2011-10-27 09:49:32
已阅
申请计算强帖
回复此楼
编辑
查看我的主页
cxguo
新虫
(正式写手)
应助: 0
(幼儿园)
金币: 1454
帖子: 382
在线: 388.4小时
虫号: 1071334
★★★★★ 五星级,优秀推荐
引用回帖:
1楼
:
Originally posted by
dbb627
at 2011-10-27 09:20:06:
这个板块帖子太少,发一个增加点人气,原始问题见
http://muchong.com/bbs/viewthread.php?tid=3723739
算法如下:
随机生长的步骤如下:
1) 建立材料生长的初始网格,并设定所有网格材料皆为主相; ...
楼主高手啊,请教以下可以用Matalab画原子生长模拟图不?三位岛状生长的。
赞
一下
回复此楼
4楼
2011-10-28 12:41:57
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
dbb627
荣誉版主
(著名写手)
专家经验: +4
计算强帖: 12
应助: 289
(大学生)
贵宾: 0.589
金币: 24640.4
帖子: 1246
在线: 1794.8小时
虫号: 149791
引用回帖:
4楼
:
Originally posted by
cxguo
at 2011-10-28 12:41:57:
楼主高手啊,请教以下可以用Matalab画原子生长模拟图不?三位岛状生长的。
有生长的模式吗,你写出来看看,我不是研究材料。不太知道三位岛状生长。
赞
一下
回复此楼
5楼
2011-10-28 13:53:10
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 27 个回答
☆ 无星级
★ 一星级
★★★ 三星级
★★★★★ 五星级
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定