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

V2ray开启局域网共享功能

为了让Nintendo Switch可以用twitter社交帐号发布屏幕截图和录像,使用了V2ray开启局域网共享的功能。

  • 电脑安装V2ray客户端 ,勾选 V2ray设置中的“允许来自局域网的连接”,并可以科学上网。
  • 手机或其他移动设备,与电脑连接在同一局域网内,例如连接同一个无线路由器。
  • 在手机或其他移动设备的代理设置中,填入电脑在局域网中的IP,端口为 1081

参考:
V2ray和SSR开启局域网共享功能

投篮练习

最近压力比较大,原来双十一准备买一个篮球,后来发现室友有一个闲置很久的篮球,我便借来用了,同时借来了打气筒。打足气后,能用。

上周一,也就是双十一当天,开始每天投篮约一小时。每次至少投进50球,已经连续一周了。现在大约30多分钟便可以投进60个罚篮。

2019年数学建模

2019年,华为杯第16届中国研究生数学建模竞赛在9月18日开始,组队参加这次比赛,得益于队友的支持,建模体验远好于本科时参与过的两次。

本科时国赛和两位交通学院的女生组队,建模程序文章全部我一人包圆,文章质量当然也是极差,没有获奖是意料之中。当年寒假,又和本学院的两位大神组队,参加美赛。那两位大佬国赛时和一名理学院的学弟组队,斩获国家二等奖。但是美赛的实际情况缺十分糟糕,四天三夜只得个安慰奖而已。并且报名、缴费等杂事也是我一人完成。这次体验,不免觉得这两个人在合伙搞我。

2019年和两位师兄报名了研究生数学建模,体验较好,合作愉快,结果另说。

选择D题,“汽车行驶工况构建”,主要是对数据的处理与挖掘。使用了主成分分析(Principal Component Analysis,PCA)和K均值聚类(k-means clustering)的方法,也算花了两天时间学习了一下这些数据科学种的常用方法。时间安排的也非常好,不熬夜佛西建模,迅速的讨论建模,早早写完稿子交上。算是在平日科研中的一种调剂,换换思维方式。


2019-11-11,在双十一这一天出了成绩,又是成功参与奖,依旧是最菜的。

转载:Zotero 使用笔记

Zotero 使用笔记

Zotero 是一个免费的文献管理工具。关于 Zotero 的使用推荐阳志平老师的博客:

本文主要介绍几个比较有用的插件和自己平时的操作流程。

插件

主要功能包括,文件重命名,导出 PDF 文件到指定目录,与云存储配合实现扩平台阅读。

Better Bib(La)Tex(link)(已过时,zotero 支持 clipboard 导入,看 tips5 )

Zotero 本身不支持 Bibtex 格式导入文章条目。该插件弥补了这一不足。
使用时,将 Bibtex 信息复制到 clipboard 中,然后选择 import from clipboard 即可。
zotero-import-from-bibtex

Markdown Here(link

使用 markdown 编写文章笔记,然后用 ctrl+alt+m 组合键将文本变为 html。该插件需要自行编译 xpi 插件包

Google Scholar Citation(link

查找文章的引用数,将引用信息填入 extra 字段中。
P.S. 最新版本的插件可能会不工作,可以使用老版本的插件(例如 v1.8.4)。如果一次更新太多会被 Google 认为是 Robot,限制访问。

工作流

[预备] 同步到 webDAV 上(使用 digital ocean 的私服搭建

  1. 文件导入(一般是 connector 或 bibtex);
  2. 批量下载 (chrono download),并创建索引(Create Bibliography from Item);
  3. 更新 scholar citation(Google Scholar Citation);
  4. 使用 Zotfile 发送到共享文件夹 (Google Drive),使用 IPad 浏览(PDF Expert)并记录笔记然后再用 Zotfile [Get from Tablet] 同步回 Zotero;
  5. 在条目中创建 notes ,使用 markdown 语法做笔记(markdown here)。

另外,阳的博客(6)中使用的 chrome 插件已经过时,更新为 Chrono Download Manager

Tips

  1. 递归显示 collection 中所有项目信息 (Hidden Perferences)
    希望实现的功能是,点击一个 collection 可以显示 sub-collection 的项目。Zotero 默认情况是不显示的。这个问题之前有人在 Zotero 社区问过
    解决方法是通过修改 Hidden Preference 文件中的 extensions.zotero.recursiveCollections 字段,将其修改为 true 即可。
    Zotero 的配置文件包括一般可用文件和隐藏文件。隐藏文件的修改可以进入 Advanced (Panel),选择 open:config 进行修改(当前 Zotero 版本是 4.0.29.15)。
  2. 显示 collection 目录下文件个数 (tips_and_tricks)
    To see how many items you have, click an item in the middle pane and Select All (Command-A on macOS or Control-A on Windows/Linux). A count of selected items will appear in the right-hand pane.
  3. 批量展开与折叠项目信息
    To determine total items, including child attachments and notes, click an item and press the + (plus) key to expand all parent items before using Select All. You can press – (minus) afterward to collapse all items.
  4. 查看一个条目在哪些目录(tips_and_tricks
    To see all the collections an item is in, select the item and then hold down the “Option” key (Mac OS X), “Control” key (Windows), or “Alt” key (Linux). This will highlight all collections that contain the selected item.
  5. 从粘贴板导入条目How does the Import from Clipboard feature work?
    Import from Clipboard allows you to import items from the raw code of any supported format (RIS, BibTeX, CSL JSON, etc.). Many websites post the bibliographic data for items in their raw form. To add these items to your Zotero library, select and copy the code from the site, then import through the option in File menu in Zotero, or by the keyboard shortcut (Windows/Linux: Ctrl-Alt-Shift-I / Mac: Cmd-Option-Shift-I).

TODO List

关于插件:

  • voyant-export 可以对储存在Zotero里的文字信息进行进一步分析,生成云图或者其它数据可视化图像。

原文链接:

https://leungf.github.io/2017/10/13/zotero-notes/

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官方的 在线文档

高斯光束

最近仿真需要用到高斯光束,学习了一下高斯光束的设置和相关理论。

在一定频率下,Maxwell方程并不独立完全独立,只有法拉第定律和安培定律(加位移电流)的两个方程独立。求解电场或磁场可以得到Helmholtz方程,是一定频率下电磁波的基本方程。其解是电场代表电磁波场强在空间中的分布,每种可能的形式成为一种波模。

基本的解有平面波、球面波和高斯光束。高斯光束在束腰可以看作平面波,而在远离束腰的地方可以看作球面波,是连接平面波和球面波的一种过渡的形式。

高斯光束的方程为:
$ \frac{E(r,z,t)}{E_0}=\frac{w_0}{w(z)}exp[-(\frac{r}{w(z)})^2]exp[i(\omega t-\Phi _T-\Phi _L)]$

高斯光束的基本参数有:
– Beam radius : $w(z)=w_0\sqrt{1+(\frac{z}{z_R})^2}$,代表z点处光斑半径
– Radius of curvature of phase front : $R(z)=z[1+(\frac{z_R}{z})^2]$,代表等相位面
– Transverse phase : $\Phi T(r,z)=\frac{kr^2}{2R(z)}$
– longitudinal phase : $\Phi _L(z)=k_z-arctan(\frac{z}{z_R})$
– Rayleigh Length : $ z_R=\frac{\pi w_0^2}{\lambda }$,也称为高斯光束的共焦参数
– Divergence angle : $\Theta =2\theta =2\times \lim
{z \to \infty } arctan(\frac{w(z)}{z})\simeq \frac{\lambda _0}{\pi nw_0}$,代表远场发散角

参考:
1. Understanding the Paraxial Gaussian Beam Formula
2. Gaussian beam – wikipedia
3. Gaussian beam – Youtube

乙亥猪年寒假

乙亥猪年的寒假从2019年1月29日至2月17日,共计20天。

回家休息仿真,期间购置了新的笔记本,京东美日亚,港行ThinkPad T480。

看完了《jojo的奇妙历险》目前已经播出的动画四部加正在连载的第五部动画,十分精彩,充满想象力和大胆独特的画风。

院线支持了《流浪地球》的票房,盗版看了其他春节档电影,没有一个能打的。以及补了前一年中国产影片的口碑之作。

初一至初五,亲戚各家拜年,加上表哥家正月十二有空聚餐完毕。表妹考研尚可。然而愈发发现大人们说的话,都是他们亲身经历后留下的思维钢印。

每个年龄段都有每个年龄段该面对的问题,没有什么是一直都会存在的困扰,也没有一招鲜吃遍天的技能。目前看来,有车有房有编有人是较为成功的一个标志。

高中同学小群聚餐两次,初中留德同学聚餐一次,大学舍友苏州聚餐一次。简单交流,互通有无,了解工作生活现状。然而大家都有各自的工作学习,并没人有切实的关心别人。

明天又要开始干活了。