| 查看: 3613 | 回复: 10 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
Gout金虫 (正式写手)
|
[求助]
如何将取向矩阵中归一化的{hkl}转化成互质化的{HKL},求算法!!!!
|
||
|
如何将取向矩阵中归一化的{hkl}转化成互质化的整数{HKL},求程序算法!!!! 具体就是将如何将三个小数化为互质化的整数?? |
» 收录本帖的淘帖专辑推荐
科研、投稿中可能遇到的小问题 |
» 猜你喜欢
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有4人回复
自荐读博
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有5人回复
不自信的我
已经有5人回复
磺酰氟产物,毕不了业了!
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
PDF转化工具PDF2ALL必备工具Ghostscript 8.61(附PDF2all)
已经有26人回复
清华大学环境学院招收生物质能转化方向博士后1-2人,年薪8万元
已经有47人回复
NaX型分子筛转化为铵型在焙烧成H型,马弗炉中焙烧出现黑色东西是怎么回事啊?
已经有6人回复
醛转化成氰基 能一步到位吗
已经有3人回复
求助 如何自制一个恒温箱,涉及PID算法,可控硅移相控制
已经有11人回复
请教关于matlab矩阵转换问题
已经有6人回复
提供一个 Birch-Murnaghan 拟合的算法(更新1)
已经有95人回复
酵母转化后筛选
已经有3人回复
关于晶体超胞的原子个数的算法
已经有3人回复
什么材料可以将光能转化为热能?
已经有35人回复
【求助】吲哚环上N原子与甲磺酰氯反应
已经有11人回复
【求助】关于采用传播矩阵法计算透射率,反射率以及色散关系
已经有11人回复
【求助/交流】为什么质粒转化后晒出的菌在原培养基上长不出
已经有5人回复

【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhyq8767: 金币+3, 感谢应助 2012-04-04 22:05:10
Gout: 金币+10, ★★★★★最佳答案, 绝对的好人,非常好的程序,谢谢你啊~ 2012-04-05 09:10:41
Gout: 回帖置顶 2012-04-05 09:27:32
感谢参与,应助指数 +1
zhyq8767: 金币+3, 感谢应助 2012-04-04 22:05:10
Gout: 金币+10, ★★★★★最佳答案, 绝对的好人,非常好的程序,谢谢你啊~ 2012-04-05 09:10:41
Gout: 回帖置顶 2012-04-05 09:27:32
|
clear clc Indices=input('Please input the normalized indices [hkl]='); h=Indices(1,1)/sqrt(dot(Indices,Indices)); k=Indices(1,2)/sqrt(dot(Indices,Indices)); l=Indices(1,3)/sqrt(dot(Indices,Indices)); h1=abs(h); k1=abs(k); l1=abs(l); if h1>1e-3 && k1>1e-3 && l1>1e-3 % [hkl]均非负 if h1>=l1 && k1>=l1 % l1最小 A=h1/l1; B=k1/l1; i=1; while (abs(A-round(A))>1e-2 || abs(B-round(B))>1e-2) A=A*(i+1)/i; B=B*(i+1)/i; i=i+1; end if sign(l)<0 L=-i; else L=i; end if sign(h)<0 H=-round(A); else H=round(A); end if sign(k)<0 K=-round(B); else K=round(B); end elseif h1>=k1 && l1>=k1 % k1最小 A=h1/k1; B=l1/k1; i=1; while (abs(A-round(A))>1e-2 || abs(B-round(B))>1e-2) A=A*(i+1)/i; B=B*(i+1)/i; i=i+1; end if sign(k)<0 K=-i; else K=i; end if sign(h)<0 H=-round(A); else H=round(A); end if sign(l)<0 L=-round(B); else L=round(B); end elseif k1>=h1 && l1>=h1 % h1最小 A=k1/h1; B=l1/h1; i=1; while (abs(A-round(A))>1e-2 || abs(B-round(B))>1e-2) A=A*(i+1)/i; B=B*(i+1)/i; i=i+1; end if sign(h)<0 H=-i; else H=i; end if sign(k)<0 K=-round(A); else K=round(A); end if sign(l)<0 L=-round(B); else L=round(B); end end elseif h1<=1e-3 % h1 接近零 H=0; if k1<=1e-3 % h1接近零的同时k1也接近零 K=0; if sign(l)<0 L=-round(l); else L=round(l); end elseif l1<=1e-3 % h1接近零的同时,l1也接近零 L=0; if sign(k)<0 K=-round(k); else K=round(k); end elseif k1>1e-3 && l1>1e-3 % 只有h1 接近零 if k1>l1 A=k1/l1; i=1; while(abs(A-round(A))>1e-3) A=A*(i+1)/i; i=i+1; end if sign(l)<0 L=-i; else L=i; end if sign(k)<0 K=-round(A); else K=round(A); end else A=l1/k1; i=1; while(abs(A-round(A))>1e-3) A=A*(i+1)/i; i=i+1; end if sign(k)<0 K=-i; else K=i; end if sign(l)<0 L=-round(A); else L=round(A); end end end elseif k1<=1e-3 % k1 接近零 K=0; if h1<=1e-3 % k1接近零的同时h1也接近零 H=0; if sign(l)<0 L=-round(l); else L=round(l); end elseif l1<=1e-3 % k1接近零的同时,l1也接近零 L=0; if sign(h)<0 H=-round(h); else H=round(h); end elseif h1>1e-3 && l1>1e-3 % 只有k1 接近零 if h1>l1 A=h1/l1; i=1; while(abs(A-round(A))>1e-3) A=A*(i+1)/i; i=i+1; end if sign(l)<0 L=-i; else L=i; end if sign(h)<0 H=-round(A); else H=round(A); end else A=l1/k1; i=1; while(abs(A-round(A))>1e-3) A=A*(i+1)/i; i=i+1; end if sign(h)<0 H=-i; else H=i; end if sign(l)<0 L=-round(A); else L=round(A); end end end elseif l1<=1e-3 % l1 接近零 L=0; if h1<=1e-3 % l1接近零的同时h1也接近零 H=0; if sign(k)<0 K=-round(k); else K=round(k); end elseif k1<=1e-3 % l1接近零的同时,k1也接近零 K=0; if sign(h)<0 H=-round(h); else H=round(h); end elseif h1>1e-3 && k1>1e-3 % 只有l1 接近零 if h1>k1 A=h1/k1; i=1; while(abs(A-round(A))>1e-3) A=A*(i+1)/i; i=i+1; end if sign(k)<0 K=-i; else K=i; end if sign(h)<0 H=-round(A); else H=round(A); end else A=k1/h1; i=1; while(abs(A-round(A))>1e-3) A=A*(i+1)/i; i=i+1; end if sign(h)<0 H=-i; else H=i; end if sign(k)<0 K=-round(A); else K=round(A); end end end end disp('互质化后的指数[HKL]=') disp([H K L]) |
» 本帖已获得的红花(最新10朵)
6楼2012-04-04 22:02:47









回复此楼

Gout