MATLAB(matrix loboratory 矩阵工厂)。下面介绍MATLAB入门的相关基础知识。(小白友好
目录
一、版本
MATLAB分为a版和b版,MathWorks公司在每年的上半年3月份左右发布a版,下半年10月份左右发布b版;截至目前,MATLAB2023 已经发布。
二、特点
(1)语言简单易学(2)代码短小高效(3)计算功能强大
(4)绘图方便(5)扩充功能强大(6)帮助功能完善
三、数据类型
(一)基本类型
1、数值类型
(1)整数类型
MATLAB默认的数值类型是双精度类型。
MATLAB中整数类型包括无符号整数和有符号整数,每一种又分为8位、16位、32位、64位。
使用intmin、intmax来获取每种类型的最大值和最小值取值范围。例如:a=intmin('classname');其中classname为int8、int16、int32、int64、unit8、unit16、unit32、unit64。
定义整数类型的变量时,必须使用类型函数明确指定它为整数类型。例如:b=int 32 (X)。
(2)浮点型
MATLAB中小数包括单精度和双精度两种类型。
使用realmin、realmax函数获取每种类型的最大值和最小值取值范围。例如:a=realmin
('classname');其中classname为single、double。
定义单精度类型的变量时,必须使用类型函数明确指定它为单精度类型。例如:b=single(X);
(3)复数类型
a和b为实数,分别表达复数的实部和虚部,定义有如下三种方式(complex只有一个参数a时,表示虚部为0):
cv=a+bi;
cv=complex(a);
cv=complec(a,b);
2、逻辑数据类型
逻辑数据类型只有0和1两个值,MATLAB中用false和true两个常量代表0和1。
可以通过logical函数把数值类型的数据转换成逻辑数据类型的数据。例如:c=logical(a);
3、字符与字符串类型
MATLAB中的字符或字符串数据是用单引号括起来的单个或多个字符,字符串可以堪称一维的字符数组。每一个字符对应一个ASCII码,字符或字符串进行数值运算时按照ASCII码值进行。
(二)数组类型
1、数组的类型
MATLAB中数组是由数据类型相同、按一定顺序排列的数据的集合。数组的灭个基本组成单元称为数组的元素,数组元素的数据类型可以是MATLAB中的各种类型,一般情况下数组元素的数据类型也称为数组的类型。默认情况下,数组的类型为double。
2、数组的特征
(1)数组的维数
数组按照维数可以分为一维数组、二维数组和多维数组。其中,数值类型的一维数组也成为向量,数值类型的二维数组也称为矩阵。
MATLAB使用ndims函数计算数组维数,例如:d=ndims(A); 需要说明的是,ndims函数等价于length(size(A))。
(2)数组的下标
数组是按一定顺序排列的数据的集合,为区分标记每一个元素,对每一维建立索引,通过每一维的索引号来标记每一个元素,这种索引就是数组的下标,用下标标记的元素称为下标变量。MATLAB中数组的下标从1开始。
但是,内存中数组元素的存储顺序是按列存储的,占用一块连续的内存空间。
(3)数组的尺寸
MATLAB中数组的尺寸是指数组每一维的长度,即最大下标。
对于一个m行n列的数组A,使用size函数获得数组的尺寸。例如:e=size(A),返回数组A的每个维度的大小,e是有ndims(A)哥元素的向量。
(4)数组的长度
数组的长度是数组A中各维长度的最大值,使用length函数查询数组长度。例如:f=length(A)。
(5)数组元素的个数
MATLAB中数组元素的总个数是数组A各维下标最大值的乘积,使用numel函数来获得数组中元素的个数。例如:g=numel(A)。
(6)数组占空间的大小
等于数组中一个元素占空间的大小乘以数组中元素的个数,在工作空间的bytes项中列出。
3、创建数组的方法
(1)直接输入法
同行数据用逗号或空格隔开,不同行的数组用分号隔开。例如:
A1=[1,2,3,4,5,6];
A2=[1;2;3;4;5;6];
A3=[1 2 3;4 5 6;7 8 9];
(2)从MAT文件导入数组
(3)用特殊命令或函数生成数组
(三)元胞类型
1、元胞类型的概念
元胞类型事实上是对数组类型的一种扩充,因为数组中的元素只能是一种数据类型,而且严格按照一定的规律排列。而元胞中数据的类型可以是任何一种数据类型,每一个元素可以具有不同的尺寸和内存占用空间,内容也可以不同。
2、创建元胞数组的方法
(1)直接输入法
使用“{“,”}“创建元胞数组,同行数据用逗号或空格隔开,不同行的数组用分号隔开。例如:
A1={[1 2 3 4],'hello',{'MATLAB',2023}};
A2={A1,'matlab';{5 6 7},7*pi};
(2)使用元胞函数创建元胞数组
MATLAB中可以应用cell函数创建元胞数组,创建的元胞数组为空数组,然后为每个元胞赋值。例如:
C=cell(m,n,p,...); %创建m*n*p*...的空元胞数组。
(3)引用元胞数组
作为一个整体引用或通过元胞数组的下标引用。
(4)元胞数组“整型”
可以通过reshape函数改变排列形式,但仍然不能改变元胞的个数和存储顺序。
(5)元胞数组的操作函数
参考MATLAB帮助文档。
(四)结构类型
1、结构数组的概念
结构体是以属性名组织起来的不同类型的数据集合,每个属性可以包含其他类型的数据。
2、创建结构数组
(1)直接输入法创建结构数组
点结构体:P1.X=-13.26;P1.Y=53.25;P1.Z=777.66;
点结构数组:P(1).X=111.22;P(1).Y=222.11;P(1).Z=121.21;
(2)使用struct函数创建结构数组
例如:SA=struct('field1',values1,'field2',values2...);
(3)引用结构数组
引用结构数组有两种方式:作为一个整体引用;通过结构数组的下标和属性名引用其中的属性数据。
(4)结构数组“整型”
和普通数组一样,可以通过reshape函数改变排列形式,但仍然不能改变结构体的个数和结构体的存储顺序。
(5)结构数组的操作函数
- struct-创建构造数组
- getfield-获取结构中指定字段的值
- setfield-设置结构中指定的字段的值
- rmfield-删除结构数组的字段
- fieldnames-获取结构数组的字段名
- isstruct-判断是否为结构类型
- isfield-判断结构中是否存在该字段
- deal-把输入参数处理成输出参数
- struct2cell-把结构转换为元胞数组
(五)类
1、类的特点
(1)抽象性-从现实事务中提取出许多具体特征并用计算机的语言抽象地表达出来。
(2)封装性-把描述事物各种属性特征的数据和表达事务各种动作行为的命令或函数有机地组合在一起。
(3)继承性-
(4)多态性-
2、类或对象的要素
(1)属性(2)方法(3)事件
3、定义类与创建对象的过程
4、编程的一般步骤
(1)打开MatLab程序。
(2)在命令窗口输入函数或语句。
(3)新建M文件,编写脚本和函数。
(4)调试运行M文件。
(5)使用图形用户界面编程。
参考书目:《MATLAB与测量数据处理》中国矿业大学出版社