最近决定系统性的学习一下MATLAB。虽然以前接触过很多次,也用过不少。但每次都是现学现用,从没有系统性学习。导致知识太过离散。以后坚持学习,每天写博客~
保证知识的系统性很重要!!(所用学习环境为R2015b)
1.常用命令:help, clc, clear, exist, demo, which, what 等,一定要多用help命令,很好用
2.区分数组运算和矩阵运算。MATLAB里面,一维数组类似于C语言里面的数组,二位数组叫做矩阵。矩阵是数组的一种特例。数组运算实际上就是数字与数字之间单独拿出来的运算。而矩阵运算就是线性代数里面提及的乘法,除法,幂等。数组运算加一个"."以区分。
3.逻辑运算。
和:A&C 或:A|C 非:~A(matlab里面,不等号表示为:~=) 异或:xor(A,C)。异或运算表示相异为1,相同为0
4.比较运算
find()函数:寻找满足括号内条件的值,并且返回一个行向量,行向量存储着满足条件的值的序号。如果返回参数是两个,那么这两个值表示元素对应所在的行和列(注意:matlab是按列索引的)
all()函数:对每一列的元素进行一个个代入,看是否满足括号内的条件。如果某一列均满足,则返回1,否则返回0。因此,如果输入一个矩阵或者行向量,将返回一个行向量。
any()函数:对于某一列存在某个元素满足条件,则返回1。同上,该函数返回一个行向量,该向量由0,1组成
5.符号运算
定义符号变量的方式:syms a;
matlab的符号运算功能可以使其进行一些公式推导,证明。但是因为博主所以版本为R2008b之后的版本,该版本之后的符号运算部分由maple换成了nupad。符号运算能力减弱不少。
比如simple()函数(用于化简多项式), sincos()函数(用于三角函数化简)用不了
其他函数比如factor()可以用于做因式分解,质因数分解。
expand()可以展开多项式,collect()可以合并同类项。
6.变量替换
f = subs(f, {被替换参数列表},{替换参数列表})
替换参数列表如果是常数的话,相当于函数求值。
例如:
>>symsa b c d t; % 假设这些变量均为符号变量
>>f=cos(a*t+b)+sin(c*t)*sin(d*t); % 定义给定函数f(t)
>>f1=subs(f,{a,b,c,d,t},{0.5*pi,pi,0.25*pi,0.125*pi,4})
f1=
-1.0000
7.基本数论运算下取整floor()、上取整ceil()、四舍五入round()、离0近方向取整fix()、最简有理数rat()、求模的余数rem()、最大公约数gcd()、最小公倍数lcm()、质因数分解factor()、判定是否为质数isprime.
例如:
A = 1 : 100;
isprime(A)输出一个行向量,由0,1组成。1表示对应位置为质数,否则为合数
A(isprime(A))输出A中所有的质数
8.MATLAB语言流程控制
循环结构:for end while() end
转移结构:if else end
开关结构:
switch()
case,
...
case,
...
otherwise
...
end
试探结构:
try
catch
类似于C++的异常处理