Matlab 学习笔记
MATLAB建立在向量、数组和矩阵的基础
矩阵是MATLAB的核心
MATLAB中变量的命名规则是:
(1)变量名必须是不含空格的单个词;
(2)变量名区分大小写;
(3)变量名最多不超过19个字符;
(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名不允许使用标点符号.
逻辑(logical:该类型变量值为1或0。
字符(char):Matlab的字符型输入需使用单引号,字符串存储为字符数组,每个元素占一个ASCII字符。
数值(numeric):整型(int),单精度浮点型(single)和双精度浮点型(double)
元胞数组(cell):Matlab的元胞数组可存储任意类型和维度的数组。访问元胞数组的变量需使用大括号{}。
结构体(structure):Matlab中的结构体与C语言类似,一个结构体可以通过不同字段存储不同类型的数据。
表格(table):表格可以包含不同类型的数组,用于存储表格类的数据。
函数句柄(function handle):函数句柄可用于间接调用一个函数的Matlab值或数据类型。
(1)MATLAB的每条命令后,若为逗号或无标点符号, 则显示命令的结果;若命令后为分号,则禁止显示结果.
(2)“%” 后面所有文字为注释.
(3) “…”表示续行.
输出:
在命令窗口输入内容后,加上分号,回车后,输出数据不显示。若内容后面不带分号,回车后,输出数据可显示。
在脚本文件里,可以选用disp显示函数对输出内容进行显示。
可以用fprintf函数显示数据,格式为fprintf(format,data),format为打印数据格式,data代表打印的标量或数组。
fprintf函数括号内的%6.2代表第一个数据项占有6个字符宽度,小数点后的数值表示有2位小数,\n表示换行。
M文件
MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件. 函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为:
function 因变量名=函数名(自变量名)
函数值的获得必须通过具体的运算实现,并赋给因变量.
M文件建立方法:
- 在Matlab中,点:File->New->M-file
- 在编辑窗口中输入程序内容
- 点:File->Save,存盘,M文件名必须与函数名一致。
数组
创建:
x=[a b c d e f ] 创建包含指定元素的行向量
x=first:last
创建从first开始,加1计数,到last结束的行向量
x=first:increment:last
创建从first开始,加increment计数,last结束的行向量
x=linspace(first,last,n)
创建从first开始,到last结束,有n个元素的行向量
访问:
(1)访问一个元素: x(i)表示访问数组x的第i个元素.(下标从1开始)
(2)访问一块元素:x(a :b :c)表示访问数组x的从第a个元素开始,以步长为b到第c个元素(但不超过c),b可以为负数,b缺损时为1.
(3)直接使用元素编址序号. x([a b c d]) 表示提取数组x的第a、b、c、d个元素构成一个新的数组[x(a) x(b) x© x(d)].
行向量转列向量
直接产生 例 c=[1;2;3;4]
转置产生 例 b=[1 2 3 4]; c=b’
说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分隔的元素指定了不同行的元素.
数组的运算
标量-数组运算
数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应的加、减、乘、除、乘方运算。
数组-数组运算
当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.
矩阵
创建:
当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的数组是不能进行运算的.
逗号或空格用于分隔某一行的元素,分号用于区分不同的行. 除了分号,在输入矩阵时,按Enter键也表示开始一新行. 输入矩阵时,严格要求所有行有相同的列.
特殊矩阵的建立
a=[ ] 产生一个空矩阵,当对一项操作无结果时,返回空矩阵,空矩阵的大小为零.
b=zeros(m,n) 产生一个m行、n列的零矩阵
c=ones(m,n) 产生一个m行、n列的元素全为1的矩阵
d=eye(m,n) 产生一个m行、n列的单位矩阵
对矩阵的操作
矩阵的运算
标量-矩阵运算
矩阵对标量的加、减、乘、除、乘方是矩阵的每个元素对该标量施加相应的加、减、乘、除、乘方运算。
矩阵-矩阵运算
当两个矩阵有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行的,不同大小或维数的矩阵是不能进行运算的.
矩阵加法:A+B
矩阵乘法:A*B
方阵的行列式:det(A)
方阵的逆:inv(A)
方阵的特征值与特征向量:[V,D]=eig[A]
关系操作运算符
逻辑运算符
控制流**
for循环、while循环、if-else-end结构.
1、for循环:允许一组命令以固定的和预定的次数重复
for x=array
{commands}
end
在for和end语句之间的命令串{commands}按数组(array)中的每一列执行一次. 在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)
2、While循环
与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.
while expression
{commands}
end
只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串{commands}.
3、If-Else-End结构
(1)有一个选择的一般形式是:
if expression
{commands}
end
如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串{commands}.
定义变量:
符号变量必须要事先定义如果不定义符号变量,系统就会报错。符号变量的定义方法为:syms+空格+变量名,此处我们以x为例,定义符号变量。