文章目录
1.MATLAB的应用
1.1matlab 基本操作
-
clear 清除工作空间中的变量
-
clc清除命令行窗口的内容
-
whos查看变量的详细信息
-
% 百分号,程序的注释
1.2 matlab的基本数据类型
1.2.1 数值类型
1.2.2 逻辑类型
MATLAB中的运算包括数值计算、关系计算和逻辑计算。关系计算和逻辑计算的结果为逻辑类型。逻辑类型数据只有逻辑真和逻辑假。
MATLAB中用·1代表逻辑真·,用函数true0表示;用0代表逻辑假,用函数 false0表示。
逻辑真和逻辑假都占用1个字节的存储空间。
函数true()的调用格式如下:
-true:该函数返回1,即逻辑真。
-true(N):该函数创建阶数为N的方阵,方阵的元素为逻辑真。
-true(M,N)或true([M,N]):该函数创建大小为MXN的矩阵。
-true(M,N,P…):该函数创建大小为MXNXP的矩阵。
-true(size(A)):该函数创建和矩阵A大小相同的矩阵。
函数 false()返回 0,即逻辑假。该函数的调用格式和函数true()的调用格式相同。在 MATLAB中,所有非0的元素都当作逻辑真。
2.1.3 逻辑型
在MATLAB中,字符型数据类型用char表示。字符和字符串不进行区分,将单个字符看成是1x1的字符串,都用单引号(')括起来。字符串中的每个字符占用2个字节的存储空间。
1.2 运算符
1.2.1 算数运算符
注意:
在程序中,对数据进行了基本的算数运算。在MATLAB中,采用符号^表示乘方运算。需要注意的是,对于a/b是a除以b(右除),a\b是b除以a(左除)。
1.2.2关系运算符
关系运算用于比较两个操作数的大小,返回值为逻辑型变量。
在MATLAB 中,关系运算符如表 2.9所示。
当两个操作数都是数组或矩阵时,这两个操作数的维数必须相同,否则会显示出错信息。(维数不同不可比较)
对于浮点数在比较是否相等时需要特别注意,因为浮点数在存储的时候存在相对误差。在程序中,最好不要直接比较两个浮点数是否相等,而是采用两个浮点数的差是否小于某个特别小的数,来判断两个浮点数是否相等。
1.2.3 逻辑运算符
1.2.4 运算优先级
1.3 数组和矩阵的分析
1.3.1 数组的建立和操作
1.通过冒号创建一维数组
通过冒号来创建一维数组,调用格式为:X=N1:step:N2,用于创建一维行向量x第一个元素为N1,然后每次递增(step>0)或递减(step<0)step,直到最后一个元素与N₂的差的绝对值小于等于step的绝对值为止。当不指定step时,系统默认step=1。
在程序中,通过冒号创建一维数组,如果不指定step,则系统默认为1。如果step>则每次递增step ,但是如果N1>N2,则返回空数组。如果step<0,则每次递减 step,但是如果N1<N2,返回空数组。(即:不合理则为空数组)
1.3.2 数组的运算
数组运算是从数组的单个元素出发,针对每个元素进行的运算。在 MATLAB 中,一维数组的基本算术运算有+(加)、一(减)、.*(乘)、./(左除)、.(右除)和^(乘方)等。
1.数组的加减运算
假定有两个数组A和B,则可以由A+B和A-B实现数组的加减运算。运算规则是若数组A和B的维数相同,则可以执行加减运算,相应元素相加减。如果A和B的维数不相同,则 MATLAB 将给出错误信息,提示用户两个数组的维数不匹配。
2、数组的乘法和除法
在MATLAB 中,数组的乘法和除法分别用==“.*”和“./”==表示。
如果数组A和B具有相同的维数,则数组的乘法表示数组A和B中对应的元素相乘,数组的除法表示数组A和 B中对应的元素相除。
如果A和B的维数不相同,则 MATLAB 将给出出错信息,提示两个数组A和B的维数不匹配。
数组A和B相乘的运算规则如下。
- 当参与相乘运算的两个数组A和B同维时,运算为数组的相应元素相乘,计算结果是与参与运算的数组同维的数组。
- 当参与运算的A和B中有一个是标量时,运算是标量和数组的每一个元素相乘,计算结果是与参与运算的数组同维的数组。
数组A和B相除的运算规则如下:
- 当参与相除运算的两个数组A和B同维时,运算为数组的相应元素相除,计算结果是与参与运算的数组同维的数组。
- 当参与运算的A和B中有一个是标量时,运算是标量和数组的每一个元素相除,计算结果是与参与运算的数组同维的数组。
- 右除和左除的关系为:A./B=B.\A,其中A是被除数,B 是除数。
3. 数组的乘方
在MATLAB 中,数组的乘方是“.^ ”。
1.3.3 矩阵的创建
矩阵的创建有多种方式,最简单的是在命令窗口中直接输入矩阵,比较适合创建比较小的矩阵。把矩阵的元素放到方括号里面,每行的元素用空格或逗号分隔,每列用分号分隔。需要注意的是每行的元素数必须相等,每列的元素数也必须相等。还可以通过语句和函数生成矩阵,例如函数eye0用于生成单位矩阵。另外,还可以通过M 文件来建立矩阵以及从外部数据文件中导入矩阵,例如通过函数imread0读取图片,从而得到图像数据的二维矩阵。
- 在程序中建立了矩阵A,A(i,)表示矩阵中第i行、第j列的元素,A(2,3)表示矩阵A的第2行、第3列的元素。
- 在 MATLAB 中,矩阵元素按照列进行存储的,先第一列,再第二列,依次类推。对于mXn 的矩阵A 中的元素A(.)采用单下标进行表示时,对应的元素为A((j-1)*m+i)。
- 在MATLAB中,通过冒号来获得子矩阵。
- A(i,j)表示取矩阵A第j列全部元素
- A(i,:)表示取矩阵A第i行全部元素
- A(i,)表示取矩阵A第i行、第j列的元素。
- A(1:i+m,:)表示取矩阵A第i~i+m行的全部元素。
- A(:,k:k+m)表示取矩阵A第 k~k+m列的全部元素
- A(i:i+m,k:k+m)表示取矩阵A第i~i+m行内,并在第k~k+m列中的所有元素。
- 此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end 表示某一维的末尾元素下标。