一、MATLAB软件介绍
1.matlab的界面
左上角,home标签下,找到layout进行设置/复位,可以设置各板块的显示与隐藏。其中有几个部分,请务必要显示
①Current Folder:中文一般翻译成工作路径,一般设置成一个自己建立的、有读写权限的文件夹,例如我的文档下建立一个matlab文件夹
②Command Window:字面意思是命令窗口,用来运行代码,所有的代码都是在这里输入
③Workspace:字面意思是工作空间,其实就是暂存所有运行结果的地方,“暂”的具体含义是:关闭matlab后丢失
2.软件中的基本概念
2.1 函数
matlab之所以强大,就是因为提供大量的函数,你也可以建立自定义函数,方法是:Home->New->function。自定义函数一般保存在工作路径下。函数文件的特征是:扩展名m,内容的第一行以function开头,后续内容是“输出变量=函数名(输入变量)”。且函数名和文件名相同。
每个函数在Command Window中运行,用来完成特定的计算任务,运行方式是输入“输出变量=函数名(输入变量)”,然后按回车。例如有个系统自带的函数是用来求绝对值的,函数名abs,所以在Command Window里输入“a=abs(-1)”,就会显示运算结果为“a=1”。且运算结果会在Workspace里出现一个变量a,双击后可看到a的值是1。
2.2 脚本
可以理解为特殊的函数,这种函数内容的开头没有function那行,因此没有输入、输出变量,也没有函数名。文件扩展名和函数一样是m,也需要在Command Window里运行。脚本都是用户建立的,方法是:Home->New Script。一般保存在工作路径下。脚本的功能就是完成用户需要的、复杂的计算任务,通常脚本里会调用很多函数。
2.3 GUI
一般翻译为界面,就是人机交互界面的意思。写脚本处理问题的方法有点麻烦,让人看起来更像是码农,所以现在很多问题可以通过界面点点鼠标解决。这时候就需要打开界面,打开方法是:在APPS标签里可以找到所有已安装的GUI工具,单击即可。注意右边有个小三角可以点开。和函数一样,用户也可以自己建立自定义GUI,这部分较为复杂,对新手而言有点遥远。
2.4 toolbox
一般翻译成工具箱,matlab将功能相近或者应用上自成体系的一组函数和GUI打包成一个toolbox。正版的matlab在购买时,几乎每一个toolbox都是要单独收费的,所以toolbox也可以理解为matlab产品的模块,一个工具箱就是一个产品/商品。
2.5 simulink
一般用matlab解决问题的过程是:用户自定义脚本,在Command Window里运行脚本。而脚本的运行逻辑是顺序执行,和一般的编程一样。simulink则提供另一种思路,图形化编程,有点像labview,这种方法很适合于物理模型的仿真,因此有时用“matlab编程”和“simulink仿真”强调。使用方法是在home标签下点击simulink。
3.获得帮助
常用的获得帮助有四种方法
①右上角home标签里,有个Help标志,点开后可以获得各工具箱/产品的完整帮助文档。新版本中默认使用在线,改用本地帮助的办法是在home标签里,Preferences下的matlab/Help里选择installed locally
②cn.mathworks.com官网上找到支持,然后可以获得教程。这种方法获得的帮助文档和第一种方法一样。
③在Command Window里输入 doc+函数名 来获得帮助。比如输入"doc fft"可以获得离散傅里叶变换函数fft的帮助和范例。这种方法获得的文档是前两种方法文档中的部分。当然,前提是你要知道函数名,才能找到帮助。这种方法适合于获得系统自带函数的使用说明。
④使用GUI时,通常界面的角落里有Help,点开可以获得帮助。这种方法获得的文档是第一和第二种方法文档中的部分。这种方法适合于获得系统自带GUI的使用说明。
这几种方法中,最常用的是第三种,只要知道自己需要的函数名,就可以用这种方式获得说明和范例。而实际使用中,一般常用的系统自带函数,也并不是非常多,大概几十个?真正需要牢记使用方法的可能就几个,通常都是知道函数名,要用的时候doc一下。
二、命令窗口的基本配置
1、format命令
进行数据类型转换,行间距调节等功能时,用
format + 关键词 回车
eg:format long 回车 //将数据变为长整型
format compat/loose 回车 //调节行间距紧密/松散
2、clc命令
清屏。即清理当前屏幕上的内容,屏幕上没有了,但保留在内存中了
3、clear命令
删除某一变量,或清空工作区
clear + 变量名 回车
eg:clear a 回车 //删除工作区中的a变量
clear或者clear all //清空工作区。建议在刚打开matlab窗口时先清空一下工作区。
4、whos命令
查看某变量详细信息
4.1 whos 回车 //查看所有变量信息
4.2 whos + 变量名 回车 // 查看该变量详细信息
eg:whos a 回车
5、x/ylable命令 //给xy轴加横纵坐标说明
eg:xlable (‘x轴’) 回车
6、disp() //屏幕输出函数,类似于c语言中的printf()函数
disp函数直接将内容输出在Matlab命令窗口中,关键是看disp函数怎么把字符和数字在一起进行显示。
disp(X)函数只有一个输入,当你有多个字符串作为输入时就会报错。
例如:
disp('Alice is ' , num2str(12) , ' years old!' );
就会报错--输入参数过多。
但是将里边的内容用中括号一括就成了一个字符串,
例如:
str=['Alice is ' num2str(12) ' years old!'];
disp(str);
上边这句话也就等价于:
disp=(['Alice is ' num2str(12) ' years old!']);
这就是加中括号的原因,而不是因为num2str(),
因为disp(num2str(12));也是正确的,因为里边就只有一个字符串。
7、zeros函数 //创建一个全为零元素的数组
-
1、B = zeros(n) 返回一个n x n的零矩阵.如果n不是一个标量,将抛出错误。
-
2、B = zeros(m,n) or B = zeros([m n]) 返回一个m x n的零矩阵。
-
3、B = zeros(d1,d2,d3...) or B = zeros([d1 d2 d3...]) 返回一个d1-by-d2-by-d3-by-... .的零元素数组。
-
4、B = zeros(size(A)) 返回一个和A一样大小的零数组。
-
5、zeros(m, n,...,classname) or zeros([m,n,...] 返回一个类型为classname的m x n x...零数组。classname可以是下面一些值:double', 'single', 'int8', 'uint8', 'int16', 'uint16', 'int32', or 'uint32'
-
示例
-
x = zeros(2,3,'int8');
-
备注
-
MATLAB语言 没有一个 维度 声明 ; MATLAB 自动为矩阵分配存储空间。 然而,对于大型矩阵 , MATLAB程序可能会执行得更快 ,如果零函数用于设置一个矩阵,其元素将产生一次 , 或行或列的时间预留存储空间。例如
2、B = zeros(m,n) or B = zeros([m n]) 返回一个m x n的零矩阵。 3、B = zeros(d1,d2,d3...) or B = zeros([d1 d2 d3...]) 返回一个d1-by-d2-by-d3-by-... .的零元素数组。 4、B = zeros(size(A)) 返回一个和A一样大小的零数组。 5、zeros(m, n,...,classname) or zeros([m,n,...] 返回一个类型为classname的m x n x...零数组。classname可以是下面一些值:double', 'single', 'int8', 'uint8', 'int16', 'uint16', 'int32', or 'uint32' 示例 x = zeros(2,3,'int8'); 备注 MATLAB语言 没有一个 维度 声明 ; MATLAB 自动为矩阵分配存储空间。 然而,对于大型矩阵 , MATLAB程序可能会执行得更快 ,如果零函数用于设置一个矩阵,其元素将产生一次 , 或行或列的时间预留存储空间。例如
-
x = zeros(1,n);
-
for i = 1:n
-
x(i) = i;
-
end