MATLAB实践篇:进阶应用与实例

下面给出两道基于火星探测器MAVEN实测数据的时序分析练习题:

(数据下载地址:https://pds-ppi.igpp.ucla.edu/;打开后点击Mars-MAVEN)

%Task 1

1.找到并下载2015年1月份所有MAG(分辨率ss_1s)的sts文件,利用“批处理”对所有sts文件进行读取并重新写入后缀是.txt的无表头纯数据文件,再分别存.mat格式,读完后可以只保存mat格式文件数据;

2.读取2015年1月7日和1月8日的mat数据,按照时间顺序进行数据拼接,拼接完成后,对磁场数据进行预处理;

3.预处理后,请以每3小时20分钟为时间间隔批处理出图,图形面板要包括以下信息:

% 磁场三分量及总磁场的变化量(每十分钟做分析,即把每十分钟的中位数当成期望值)

% 四个变化量放在一张图里,用不同颜色的线和标注注明

% 对四个变化量分别做小波分析(cwt),分别为四张子图

% 卫星高度及其三分量放在一张图里,用不同颜色的线和标注注明

% 存图(saveas)

%Task2

1.同Task1中找到并下载2015年1月份所有SWIA-onboardmom文件,学习读取网站文件说明文档,尤其是数据中的0/1判断模式代表的含义;

2.读取2015年1月7日和1月8日的数据,按照时间顺序进行数据拼接,拼接完成后,对质子速度数据进行预查看;

3.计算对应的速度三分量和总速度的变化量(每十分钟做分析,即把每十分钟的中位数当成期望值),并将速度和磁场对应的三分量变化量计算相关系数,即对应位置是每10分钟取CCx/y/z值。

如果这个练习到这里基本没什么问题,那么对于数据读取、基本运算和绘图就没有什么太大的问题了。那这仅仅只是建立在软件工具包的函数上,好像自己也没有什么算法上的知识。通常,对于像Fortran、Pasical、Visual Basic基础语言,更需要算法的内核,尤其是经常出现的:(冒泡、快速、选择等)排序、阶乘、闰年、追及、最优化、微分方程求解等实际数学问题(更多可以借鉴参考《啊哈!算法》)。但在矩阵运算上,有时没有Matlab来得方便理解,但在大数据运行效率上,Matlab往往疏于优化,而显得与Fortran还有点小巫见大巫。

那就从阶乘n!的角度去体会一下算法?

当n取得特别大的时候,往往由于计数位的限制,从而会很快逼近Inf,其实n越大更关心的是多少位,而不是确切的真实数字,总而言之可以精确到一定位数就可以。然而,利用科学计数法,整数不也是可以用浮点数表示吗?而且乘法也不一定就一定要是乘法(累乘器-爆炸算法),取个对数就可以变成加法(累加器-可控算法)。这样子一想,是不是就有点茅塞顿开了?

  • A=n!=n(n-1)(n-2)···2·1=BE+C
  • logA=logn+log(n-1)+···+log1=M
  • A=10^M=10^{(M-[M])+[M]} =BE+C([M]为取整)
  • C=[M]
  • B=10^(M-[M])

算法告诉你们了,是不是尝试编一编呢?对比一下这种算法可以算的n阶乘有多大呢?

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空