标签归档:matlab

Matlab 从字符串中提取数字

今天学到了一个从字符串中提取数字的方法

对于字符串中数字出现格式相对固定的,可以使用’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

参考:Matlab – sscanf从字符串读取格式化数据

LiveLink™ for MATLAB®(COMSOL Multiphysics)

由于需要经常变换结构参数,进行电磁仿真,通常使用comsol内的sweep功能进行波长扫描,手动输入结构参数十分繁琐,所以开发使用LiveLink™ for MATLAB的功能,实现自动化仿真。

最好的参考依旧是官方手册, 基于Client-Server架构,使用 MATLAB Client和Comsol Server。。

基本的连接操作如下:

  • 打开 COMSOL x.x with MATLAB,其中x.x为版本号
    (首次打开填入用户名和密码,密码输入时不显示)
  • comsol server 命令行窗口和 MATLAB 桌面软件被打开
  • 在MATLAB 命令行中使用mphload(‘xxx.mph’)加载文件夹下已有的mph文件
  • 同时也可以使用Comsol desktop中COMSOL Multiphysics Server>Connect to Server,再Import Application from Server

参考:

LiveLink™ for MATLAB® User’s Guide

Matlab 相关操作小结(1)

之前使用matlab进行仿真的解析计算。最近在处理实验数据,也使用到了matlab,对于一些常见的操作进行一下小结。


1. 拟合

  • 使用cftool工具箱

工具箱操作相对便捷,首先导入数据,打开工具箱,选择需要拟合的X和Y(或Z)的数据,选择拟合类型,可以实时的看到拟合的结果。

  • 使用fit命令

fit命令 可以用于拟合函数需要注意的是,fit命令返回的fitobject对象。
可以用 Fit Postprocessing 拟合后处理函数,从对象中提取需要的内容。
feval(fitobject)可以得到拟合后的数值,plot(fitobject)可以绘制拟合前后的图像。

2. 批量读取.csv文件

dir命令可以列出文件夹内容
dir(*.csv)可以列出当前文件夹所有.csv文件,然后我的做法是再再当前文件夹下保存为.mat文件,以供后续使用。

csvread('filename',r,c) 可以用来读取.csv文件,r,c,分别用于开始从表中读取数据的偏移量。

文件路径
当前路径下 (mat和m文件在一起): load ***.mat;
在下一级路径下:load .\下一级路径的文件名\***.mat;
在上一级路径下:load ..\***.mat;
在平行文件夹内: load ..\平行的文件夹\***.mat;

3. 常用函数

  • size
    主要用来获得矩阵的各个维数的大小,或者指定维数的大小。

  • length
    用来获得一维数组的长度或者多维数组中最大的维数

  • array(array==0)=[]
    删除0值

  • max 、min
    最值

  • mean 、norm
    算数平均值,平方和开根号


最后,最重要的仍然是勤于搜索和翻阅手册。

欢迎点击 Mathworks官方的 在线文档