适合具有高数基础的科研小白。
作为一个工科生,软件的使用是非常重要且必不可少的。如果你的计算机基础非常扎实,已经熟练掌握Python,R等语言了,想必你已经会自行编写代码了,那么请右上方X划走。
本文主要针对即将开始科研学习,但还没有编程基础的同学们阅读了解。MATLAB作为一个在学术界横行多年的老将,仍旧有其不可替代的优势。
1思维概念
计算机编程的基础是数学。我们要树立一个基本的认识,那就是计算机编程只是一种语言,一种把数学题变为计算机可以识别的语句执行的语言。进一步延展概念,数学其实也是一种语言,数学是一种把世界万事万物和现实问题都用字符表示的表达方式。那么数学和计算机科学都只是我们思维方式的体现形式,所以,当我们遇到一个问题后,第一步是你要思考究竟采用什么解决办法;第二步是思考这种解决方法用数学语句如何表述;第三步是这种解决办法用计算机如何正确表达。
2数学基础
在学习Matlab前,首先要具备基础的高数知识,最最基础的是一定要了解矩阵的概念、矩阵的运算规则、积分、微分、多元回归等。后期如果需要深入开展科学研究,可以进一步了解相关数学内容,比如傅里叶变换、相关分析、参数优化等内容。
1、认识matlab界面。
2、每一个脚本(也就是代码页,也就是.m文件)第一行都应该先写下第一行----clearall;closeall;意思是清除和关闭之前运行的程序或存储内容
3、每一句表达的语句最后用分号做结尾
4、变量是指有名称但里面的内容可变的东西。可以将它们看着存储空间,甚至假想为一大堆用来存储的箱子。
5、%放在语句后,意思是后面的内容是注释,换行就不算注释了。
作者有言:未完待续,将会继续补充。
3输入功能介绍
作为一个功能强大的计算软件,输入数据是非常重要的,首先就要根据你的数据存储形式选择合适的输入函数了。
最笨的办法,就是自己定义,你想让变量是几,你就自己写。
例如:a=1;定义变量a的值为1;
a=[1,2,3;4,5,6];定义变量是一个2行3列的矩阵;
a=[];定义变量a,但是数值不定,一般默认为浮点型变量。
聪明人选择根据数据存储类型直接导入,一次计算可以采用页面上的快捷键工具。如下图所示。如果需要保存文件且不丢失,建议在命令行中写下代码。
数据存储类型一般分为.txt/.xls/.mat分别是指文本文件,excel文件和matlab生成的数据存储文件。
(1)excel文件选择xlsread函数,用法如下。
示例1:b=xlsread(E:\matlab\example01\GRA.xlsx);
这是指定义了一个变量b,它的内容是xlsx格式(也就是excel表),这个excel表的名字叫GRA,这个表格存储在E盘下,matlab文件夹下的example01文件夹里。一般直接在电脑中直接复制路径即可。
(2)*.txt文件使用textread函数或使用importdata函数常见格式[A,B,C,...]=textread(filename,format)
A=importdata(filename)
示例2:A=textread(E:\matlab\example01\01.txt,%d)
A=importdata(E:\matlab\example01\01.txt);%加载01.txt文件里的内容。
示例2中第一行的意思是先将名字为01的txt文件的文本以d(数组)的形式存储起来并命名为A,format是指存储形式,可以直接不写,那么就默认原样保存,也可以制定存储格式,例如数值型、字符形、字符串、结构体。数值型包括整数(int)、单浮点数(single)、双浮点数(double),浮点数就是可以表示小数,单浮点数的精度也就是小数点后面的范围要比双精度浮点数的范围小。一般做计算全程使用数值型变量,计算量不大的时候,建议全程使用双精度浮点型(double)。
字符串,可以简单粗暴的理解字符串就是,写字的时候,原本应该一个数字占一格,字符串是把一句话全塞进一个格子里了。字符串的优点节省了存储的空间,但是缺点是不能灵活的修改字符串里面的某一个字。(当然你要是想改还是能改的,不过手续略微麻烦);
第二行的意思是将01的txt文件内容导入进来,并命名为A。
(3)*.mat使用load函数,常用格式loadfilename
示例3:load(E:\matlab\example01\matlab01.mat)
注意:.m文件和.mat文件不是同一个东西,前者是指包含了Matlab代码的文本,后者是指matlab的数据存储的标准格式。如何兴建一个.mat文件,方法是根据窗口上方的保存工作区按钮,然后保存为变量,然后命名和选择好存储路径即可,详情见下图。
(4)输入图片。Matlab也支持图片的导入。常用的函数是imread
常见表达是A=imread(filename,fmt)
示例4:a=imread(E:\matlab\example01\01.jpg,’JPG’);
示例4中的常用表达是先将01这个jpg图片导入并命名为a,常见表达里的fmt是指图片类型。最后的a是一个数组,如果图片是灰度图,那么就是一个m*n的矩阵,如果图片是一个真值图,也就是彩色图,那么就是m*n*3,也就是有3个m*n的矩阵,分别代表颜色R\G\B,也就是常用三色图red\green\blue红绿蓝。如果文件是tiff格式,那么就是一个m*n*4的矩阵集合,因为tiff图采用的颜色模式为CMYK,CMYK代表印刷上用的四种颜色,C代表青色(Cyan),M代表洋红色(Magenta),Y代表*色(Yellow),K代表黑色(Black)。
Matlab支持导入的图片类型非常多。具体如下图所示:
(5)还可以输入文字。输入的类型就是字符变量。
把想要输入的文字加上单引号就成了字符型,然后赋给某个变量即可。
示例5:a=’天天开心!’
作者现在好像也想不起来还有什么其他的东西要输入了,以后想到了再添上。
4输出功能介绍
(1)输出到excel表。一般采用xlsread函数,常见格式是xlsread(filename,array,sheet,xlrange)
其中,filename是指导出的excel表存放在哪个路径,也就是存放位置;array是指程序里要存或者导出的变量名称;sheet,是指你存的excel的名称;,xlrange是指最后表格里第一个数字存在哪个位置,例如A1第一行第一列。
示例6:xlsread(E:\matlab\example01,A,’caculation’,’A1’)
意思是将数组A写入一个名字叫caculation的excel表,这个表放在E盘matlab文件夹下example01文件夹下,数组A从第一行第一列就开始存放。
(2)输出到txt文件。一般采用fprintf函数,作用是将数据转换为字符串,然后写入txt文件。常见表达是fprintf(fileID,formatSpec,Ai….An)。其中,fileID也称为fid,是指你要将数据写在哪里的文件上,一般是路径\文件名,字符串;formatSpec是指你写入的数据用什么形式写,比如是要保留小数点多少位、是不是字符串、要不要换行、要不要缩进,字符串形式;Ai….An是指你要写入的数据名称。
示例7:b=rand(2);
fid=fopen(‘E:\matlab\example01.txt’,’w’);
fprintf(fid,’tablea:\n’)
fprintf(fid,’%.1f%6.4%\n’,b)
fclose(fid);
示例7的意思是:定义一个随机变量b,rand(2)是随机生成2阶矩阵;fid用的fopen函数来找到要写入的文件句柄,若没有填写,则输出到屏幕。W是指写的意思也可以理解为创建一个文件,第三句意思是在打开来的文件里输入一行字tablea:然后换行,\n是语句表达里的换行意思;第四句是将矩阵b的数按照一定格式写道fid文件里。文件格式是每一组自变量和因变量占一行,每一行格式是:第一个数保留一位小数然后空格,第二个数保留小数点后面4位,然后换行。第五句是指关闭文件句柄,不再修改文件里的内容。
还有一个好用的方法就是save函数
格式是save(filename,variables,fmt),简单理解就是存储路径,要存储的变量,存储的文件形式。其中此处的fmt包括。-mat-ascii两类。Mat是matlab数据存储格式,ascii是二进制存储方式。示例:save(output.txt,data,-ascii)
未完待续,下次再写。