今天学到了一个从字符串中提取数字的方法
对于字符串中数字出现格式相对固定的,可以使用’sscanf’函数, 功能为Read formatted data from string 。
我从文本文件中读取到文件名字符串,
str='R_topAu_hspacer=0.1[um],period=0.3[um].txt'
A = sscanf(str, 'R_topAu_hspacer=%f[um],period=%f[um].txt');
就可以提取出其中的0.1和0.3
今天学到了一个从字符串中提取数字的方法
对于字符串中数字出现格式相对固定的,可以使用’sscanf’函数, 功能为Read formatted data from string 。
我从文本文件中读取到文件名字符串,
str='R_topAu_hspacer=0.1[um],period=0.3[um].txt'
A = sscanf(str, 'R_topAu_hspacer=%f[um],period=%f[um].txt');
就可以提取出其中的0.1和0.3
由于需要经常变换结构参数,进行电磁仿真,通常使用comsol内的sweep功能进行波长扫描,手动输入结构参数十分繁琐,所以开发使用LiveLink™ for MATLAB的功能,实现自动化仿真。
最好的参考依旧是官方手册, 基于Client-Server架构,使用 MATLAB Client和Comsol Server。。
基本的连接操作如下:
参考:
LiveLink™ for MATLAB® User’s Guide
之前使用matlab进行仿真的解析计算。最近在处理实验数据,也使用到了matlab,对于一些常见的操作进行一下小结。
工具箱操作相对便捷,首先导入数据,打开工具箱,选择需要拟合的X和Y(或Z)的数据,选择拟合类型,可以实时的看到拟合的结果。
fit命令 可以用于拟合函数需要注意的是,fit命令返回的fitobject对象。
可以用 Fit Postprocessing 拟合后处理函数,从对象中提取需要的内容。
如feval(fitobject)
可以得到拟合后的数值,plot(fitobject)
可以绘制拟合前后的图像。
dir命令可以列出文件夹内容
dir(*.csv)
可以列出当前文件夹所有.csv文件,然后我的做法是再再当前文件夹下保存为.mat文件,以供后续使用。
csvread('filename',r,c)
可以用来读取.csv文件,r,c,分别用于开始从表中读取数据的偏移量。
文件路径
当前路径下 (mat和m文件在一起): load ***.mat;
在下一级路径下:load .\下一级路径的文件名\***.mat;
在上一级路径下:load ..\***.mat;
在平行文件夹内: load ..\平行的文件夹\***.mat;
length
用来获得一维数组的长度或者多维数组中最大的维数
array(array==0)=[]
删除0值
max 、min
最值
mean 、norm
算数平均值,平方和开根号
最后,最重要的仍然是勤于搜索和翻阅手册。
欢迎点击 Mathworks官方的 在线文档