find函数matlab_基于MATLAB的核放射素查询系统

听说今天微信支持520红包,童鞋们可以发给小编试试哦哈哈,虽然没有人发,但是还是收到了妈妈的红包开心啊哈哈

39916c82fa772da87d09c0ae78b4cad8.png

96e6dc070b3ea5471a6592e6e4fa6c12.png

放射性核素信息主要是包含放射性物质的半衰期及  特征峰γ能量(分支比)/keV(%),现有放射性核素信息表如下表所示。文件原始类型为excel,采用MATLAB GUI模块设计一个查询系统,使得用户输入放射性物质的任意信息,便可查询到其半衰期及特征峰γ能量等。由于半衰及特征峰的数据较长查询极不方便,故要求输入数值的小数点后一以为即可。如下面标红的该放射性,输入Co-60或5.3或117.2或1332.5任意一数据便可查询该放射性物质。效果如下图所示。

                                          放射性核素信息
放射性物质半衰期               特征峰γ能量(分支比)/keV(%)
Co-57271.79(9)d122.0614(85.60) 136.4743(10.68) 692.41(0.149)
Co-605.2714(5)y1173.237(99.97) 1332.501(99.98)
Ba-13310.51(5)y276.400(7.164) 302.851(18.33) 356.013(62.05) 383.848(8.94)
Cs-13730.07(3)y661.657(85.1)
Ir-19273.813(8)d295.958(28.67)308.457(30.0)316.508(82.81) 468.072(47.83) 
Ir-19273.813(8)d484.578(3.184)588.584(4.514) 604.415(8.23)612.466(5.309)
Eu-15213.537(6)y121.782(39.76)244.697(10.55) 443.965(4.379)778.904(46.45)
Eu-15213.537(6)y867.373(5.906)964.079(20.32) 1085.869(14.2)1112.069(18.98)
Eu-15213.537(6)y1299.14(5.826)1408.006(29.22)1457.643(0.698)1528.103(0.391)
Ra-2261600(7)y295.224(19.3) 351.932(37.6)609.312(46.1) 1120.287(15.1)
Ra-2261600(7)y1764.494(15.4) 2204.21(5.08)
Am-241432.2(7)y26.3448(2.4) 59.5412(35.9) 125.3(0.00408)208.01(0.000791)
Cr-5127.7025(24)d320.0824(9.92)
Ga-673.2612(6)d93.311(39.2)184.577(21.2) 208.951(2.4)300.219(16.8)
Ga-673.2612(6)d393.529(4.68)
Tc-99m6.01(1)h140.511(89.06)
Pb-10316.991(19)d294.98(0.0028) 357.45(0.0221)497.08(0.004)
In-111 2.8047(5)d171.28(90.2) 245.4(94)
I-1318.02070(11)d80.185(2.62)284.305(6.14)364.489(81.7)636.989(7.17) 
I-1318.02070(11)d722.911(1.7729)
Xe-1335.243(1)d80.997(38) 233.221(10)
U-233159200(1)y146.345(0.0066)164.522(0.0062) 187.969(0.0019)291.354(0.0054)
U-233159200(1)y317.16(0.0078)320.541(0.0029)
U-2357038000(5)y143.76(10.96) 163.33(5.08)185.715(57.2)205.311(5.01)
Pu-23887.7(3)y43.498(0.0395)  99.853(0.0073)152.72(0.0009)
Np-237214400000(7)y86.477(12.4) 143.249(0.43) 151.414(0.232) 212.29(0.155)
U-2384468000000(3)y1001.7(0.838)1737.73(0.0003)1831.3(0.0172)
K-401277000000(8)y1460.83(10.67)

e4b9e4a36fbaa631826d353a808ee46b.png

c62d4d32779b4b6fb36dccca21af6131.png

279cbc470d2fffc74cf3841d96694092.png

问题的关键在于数据前处理,首先根据要求,需要把半衰周期和特征峰值的数据进行处理(要求规定):将括号内的内容删除掉,并将所含的字母删除,如

a03085662db12bcc80fa805e6f094c07.png

处理为

eca4159d029dffdeb3e93e183cf6a7ba.png

据前处理的核心函数是正则匹配函数regexprep,相关详细使用方法参见官网或者本地帮助文档(help regexprep)。首先需将excel表格的数据导入matlab。

Excel数据转化mat程序

%% 导入电子表格中的数据

% 用于从以下电子表格导入数据的脚本:

%    工作簿: E:\桌面\公众号\20190520\核素基本信息(1).xlsx

%    工作表: Sheet1

%% 导入数据

[~, ~, data] = xlsread('E:\桌面\公众号\20190520\核素基本信息(1).xlsx','Sheet1','A1:F30');

data = string(newstr5);

data(ismissing(newstr5)) = '';

然后使用正则匹配函数regexprep,

字符串处理(regexprep函数)

newStr1 = regexprep(data,'\((\d*.\d*)\)','');

%将括号带有数字及.的字符进行匹配并替换为空白符

%该操作主要针对特征峰

data = regexprep(data,'',blanks(10));

newStr2 = regexprep(newStr1(:,2),'\((w*)\)|([a-z])','');

%半衰周期的含有()及字母的字符串进行查找并替换为空白符

newStr1(:,2)=newStr2;

newStr2=roundn(str2double(newStr1(2:end,2:end)),-1);

%将半衰周期及特征峰部分的字符串进行数字转换并保留有效位数

newStr2(isnan(newStr2))=-1;

%转化矩阵中缺失部分为Nan,故将所有Nan占位记为1

newStr3=string(newStr2);

%将数字转化为字符串

newStr3=[newStr1(2:end,1)  newStr3]

newStr4 = regexprep(newStr3(:,2:end),'-1','')

%将记为-1的字符匹配并替换为空白符

newStr5=[newStr1(2:end,1)  newStr4]

save data.mat data

save data1.mat newStr5

结果如下

432be820efdddfd0d4c51f52a156740c.png

166937a0a126d1c27b2b97d6110eab9c.png

据预处理后就是设计一个简单的GUI界面

GUI   设计

bc5f65d22f0967849b2e4c8e7a6cc321.png

界面设计完成后,首先获取编辑文本框内用户输入的核放射性物质

编辑文本框数据获取

set(handles.text3,'string','')

gint=get(handles.edit1,'string');

通过find函数检索用户输入的信息,通过if-语句实现:若检测到则在静态文本框中显示相关信息,否则给出找不到该放射性物质信息的提示

信息检索

[x,~]=find(newStr5==gint);

if isempty(x)

    warndlg({'查不到该该放射性核素信息!';'请重新输入'},'警告')

else

set(handles.text3,'string',(char([data(1,:);data(x+1,:)])))

end

作品欣赏

点击文字即可阅读

  • 基于MATLAB云图背景图片的添加(一)

  • 基于MATLAB文本转语音包的实现

  • MATLAB调用摄像头实例

  • 基于MATLAB制作简易画板

  • Lamb频散曲线快速绘制软件

  • 基于MATLAB的心电图信号分析与处理

  • 基于hough变换的直线检测

  • MATLAB版本的俄罗斯方块

  • 您有一份软件著作权请查收

  • 你的时光倒映机

  • 谁说工科男不解风情

  • 高阶齿轮副副参数设计系统

  • 如何抓取网页中的图片

  • 基于MATLAB的验证码生成系统

  • MATLAB 如何生成 APP ———以运动模糊图像复原为例

  • 凉凉——可变速小风扇

  • 高逼格坐标轴函数

  • 如何验证身份证号码是否合法

  • 基于compass函数的时钟制作

  • 抖音上火起来的撩妹神器

  • 基于MATLAB视频处理——抖音小视频去除水印

  • MATLAB版本的扫雷小游戏

  • 如何验证邮箱名是否合法

  • 基于MATLAB定时器timer函数制作数字万年历

  • 跟着工科男学英语单词

  • 高效办公路上MATLAB助你一臂之力

在学习中得到乐趣,在乐趣中收获学习,欢迎关注和分享该公众号。如果您有什么建议可以公众号直接回复即可,如果您需要期待您的加入,也希望您分享给您身边有需要的人。

欢迎有志之士投稿,内容只要和Matlab有关即可。可以是自己学习中的基础知识理解,也可是专业领域的知识技能,内容不限。

投稿邮箱:AbsorbedinU@163.com

QQ技术支持交流群:621250505

b0afcd059aa2edcb29e0713bde637ae0.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值