Matlab笔记(一)
本文最后更新于:2021年7月11日 晚上
一、变量与函数
(一)变量:
命名规则:
- 不含空格
- 区别大小写
- 不超过19个字符
- 变量名必须以字母开头,之后可以为数字、字母、下划线,不能使用标点符号
特殊变量表:
- ans:表示结果
- pi:圆周率
- eps:计算机的最小数,+1产生大于1的数
- flops:浮点运算数
- Inf:无穷大,如1/0
- NaN:不定量,如0/0
- i,j:虚根,i=j=$\sqrt{-1}$
- nargin:所有函数的输入变量数目
- nargout:所有函数的输出变量数目
- realmin:最小可用正实数
- realmax:最大可用正实数
(二).数学运算符号及标点符号
+,-,*,/ .*:点乘运算,及矩阵对应元素相乘之后相加 ./:点除运算 ^:幂运算 .^:点幂运算 \:左除运算 (1)MATLAB的每条命令后,若为都好或无标点符号则显示命令的结果;若命令后为分号,则禁止显示结果 (2)”%”后面所有文字为注释 (3)”…”表示续行
(三)数学函数
(四)M文件
类似于c++的头文件,用于储存编写的函数,后缀为M的文件,这类文件的第一行必须是特殊字符
function
开始,格式为:
1
function 因变量名 = 函数名(自变量名)
函数值的获得必须通过具体的运算实现,并赋给因变量。 M文件建立方法: 1.在Matlab中,点:File->New->M-file 2.在编辑窗口中输入程序内容 3.点:File->Save,存盘,M文件必须与函数名一致 Matlab的应用程序也以M文件保存
二、数组
(一)创建简单的数组
x = [ a b c d e f] 创建包含指定元素的行向量 x = first:last 创建从first开始,加数为1,last结束的行向量 x = linespace(first, last ,n) 创建从first到last,中间有n个元素的行向量 x = logspace(first, last, n) 创建从开始,到结束,有n个元素的对数分隔行向量
(二)数组元素的访问
1.访问一个元素:x(i) 访问数组x的第i个元素,i从1开始 2.访问一块元素:x(im:in) 访问冲im到in的元素 3.直接使用元素编址序号:x([i_1,i_2,i_3……]) 访问数组x的第i1到in个元素
(三)数组的方向
分号分隔一行,逗号分隔一个元素 直接产生列向量:c = [1 ; 2 ; 3 ; 4] 转置产生列向量:b = [1 2 3 4]; c = b’
(四)数组的运算
1. 数组和标量运算
数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算。 设:a = [a1,a2,a3……,an], c = 标量 则:
1
2
3
4
5
6
7
8
9
10
11a+c = [a1+c, a2+c,……,an+c]
a.*=[a1\* c, a2\*c,……,an\*c]
a./c=[a1/ c, a2/c,……,an/c]
a.\c=[c/a1, /a2,……,c/an]
a.\^c=[a1\^ c, a2\^c,……,an\^c]
c.\^a=[c\^a1,c\^a2,……,c\^an]
2.数组和数组运算
当两个数组有相同维数时,加、减、乘、除、乘方运算可按元素对元素方式进行,不同大小或维数的数组是不能进行运算的。 设:a=[a1,a2,……,an], b=[b1,b2,……,bn] 则:
1
2
3
4
5
6
7
8
9
10
11a+c = [a1+b1, a2+b2,……,an+bn]
a.*=[a1\* b1, a2\*b2,……,an\*bn]
a./c=[a1/ b1, a2/b2,……,an/bn]
a.\c=[b1/a1, b2/a2,……,bn/an]
a.\^c=[a1\^ b1, a2\^c2,……,an\^bn]
c.\^a=[b1\^a1,b2\^a2,……,b\^an]
三、矩阵
(一)矩阵的建立
都好或空格用于分隔某一行的元素,分号用于区分不同行。除了分号,在输入矩阵时,按Enter键也表示开始新的一行。输入矩阵时,严格要求所有行有相同的列。 例: p = [1 1 1 1; 2 2 2 2; 3 3 3 3] p = [1 1 1 1 2 2 2 2 3 3 3 3] 特殊矩阵的建立
1
2
3
4
5
6
7
8
9
a = [] %生成空矩阵,当对一项操作无结果是,返回空矩阵,大小为零
a = zeros(m, n) %生成m行,n列的零矩阵
a = ones(m, n) %生成一个m行,n列的元素全为1的矩阵
a = eye(m, n) %生成一个m行,n列的单位矩阵
a = rand(m, n) %生成一个m行,n列的随机矩阵
(二)矩阵中元素的操作
- 矩阵A的第r行:A(r,:)
- 矩阵A的第r列:A(:,r)
- 取m行,n列元素:A(m, n)
- 依次提取矩阵A的每一列,将A拉伸为一个列向量:A(:)
- 取矩阵A的第1₂行、第i
1-j2列构成新矩阵:A(i1:i2,j1:j2)- 以逆序提取矩阵A的第i
1-i2行,构成新矩阵:A(i2:-1 : i1, :)- 以逆序提取矩阵A的第j
z列,构成新矩阵:A(:, j2~ :-1:j1)- 删除A的第i记行,构成新矩阵:A(i
1:i2,:)=[]- 删除A的第j
1-j2列,构成新矩阵:A(:,j1:j2)=[]- 将矩阵A和B拼接成新矩阵:[A B];[A;B]
(三)矩阵的运算
- 标量矩阵运算 同标量-数组运算
- 矩阵和矩阵运算
- 元素对元素的运算,同数组-数组的运算
- 矩阵运算:
- 矩阵加法:A+B
- 矩阵乘法:A*B
- 方阵的行列式:det(A)
- 方阵的逆:inv(A)
- 方阵的特征值与特征向量:[V, D]=eig[A]
四、关系与逻辑运算
五、控制流
MATLAB提供三种决策或控制流结构:
- for循环
- while循环
- if-else-end结构
这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中,而不知直接加在MATLAB提示符下。
(一)for循环
允许一组命令以固定的和预定的次数重复
1
2
3
for x=array
{commands}
end在for和end语句之间的命令串
{commands}
按数组(array)中的每一列执行一次。在每次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(: , n)
(二)while循环
允许一组命令以不定次数重复
1
2
3
while expression
{commands}
end只要表达式里
express
的所有蒜素为真,就执行while和end语句之间的命令串{commands}
(三)if-else-end结构
- 有一个选择的一般形式是:
如果在表达式
1
2
3
4
5
if express
{commands}
else
{commands}
endexpress
里的所有元素为真就执行if和end语句之间的命令串{commands}
- 一般形式
1
2
3
4
5
6
7
8
9
10
if express
{commands}
else if express
{commands}
else if express
{commands}
…………
else
{commands}
end
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!