matlab可以实现数值分析、优化、统计、微分方程数值解、信号处理、图像处理等若干领域的数值计算和图像显示,他将不同数学分支的算法以函数的形式分类成库,使用时直接调用函数并赋予实际参数就可以解决问题。
老师说这个工具可以解决几乎所有的数建问题。
一.matlab界面
1.命令窗口
命令窗口用于输入命令行,以实现计算以及绘图的功能。
2.工作区
此窗口显示当前matlab内存中使用的变量的信息,
包括变量名,变量数组的大小,变量字节大小以及变量类型,例如:
在工作区间双击某个变量名后,将打开数组编辑窗口,显示该变量的具体内容,若要查看相关内容需双击对应目录。(同样可以在这里进行更改啦
3.命令历史
打开方式:
利用这个键来切换窗口。
双击历史命令窗口中的命令,可以再执行一次这个命令
二.matlab运行方式
1.命令行方式
直接在命令窗口中输入命令来实现计算或作图功能
但是这种方式在数据量大或者处理比较复杂的问题时十分不方便
2.M文件运行方式
在一个以m为扩展名的M文件中输入一系列数据和命令,然后让matlab执行这些命令。
M文件分为脚本M文件(先介绍)和函数M文件
建立脚本M文件将命令存储起来,以便于随时进行简单的调用计算。
建立M文件的方法:
在其中进行选择即可(啊,我还不知道有什么区别)
输入程序
存储为以m为拓展名
运行时在菜单选择运行。
三.变量与函数
1.变量
变量的命名规则:
区分大小写
首字母必须为字母,不允许标点符号(除了下划线)
不得与特殊变量重名
特殊变量名:
特殊变量
取值
ans
用于结果的缺省变量名
pi
圆周率
eps
计算机的最小数,和1相加产生一个比一大的数
flops
浮点运算数
inf
无穷大,1/0
NaN
不定量,0/0
i,j
realmin
最小可用正实数
realmax
最大可用正实数
matlab标点
除了普通的加减乘除之外,还有
.*,点乘运算
./,点除运算
%后面注释
…表示续行
2.函数
之数学函数
使用方法,
例如:log(a)
(1).三角类型
弧度制的三角函数:sin、cos、tan、cot、sec、csc;
角度值三角函数:sind、cosd、tand、cotd、secd、cscd;
(2).指数类型
exp:以自然对数底e为底数的指数函数
log:自然对数;
log10:以10为底的常用对数;
log2:以2为底的对数;
sqrt:算数平方根;
nthroot(A,k):返回数值数组A的k次根
(3.)复数类型
常用的负数类型的基本数学函数:
abs 实数的绝对值或复数的模
angle 弧度制的负数幅角主值;
conj 负数共轭;
i和j 虚数单位根号-1;
real 复数实部;
imag 复数虚部;
(4).舍入类型
常用的舍入类型的基本数学函数:
round 四舍五入成最靠近的整数
fix:截去小数部分变成证书;
floor:下取整(小于或等于x的最大整数)
ceil:上取整(大于或等于x的最小整数)
(5).余数和质因数类型
常用的余数和质因数类型的基本数学函数:
mod:数论的模除运算;
rem:除法的余数;
factor:质因数分解;
gcd:最大公约数;
lcm:最小公倍数;
之函数M文件
函数M文件的创建方式为下图:
新建->函数
该类文件的第一行必须是以一特殊字符function开头,格式为:
function 因变量名=函数名(自变量名)。
函数M文件与脚本M文件差异:
文件名必须与函数名相同
脚本无输入输出参数,而文件有输入输出参数
步骤:
新建函数
编辑,输入标准格式以及函数内容,注意上图已给出格式
退出编辑,已函数名保存
输入命令(自变量的区间,以及z与c构成函数关系(随便两个字母))
绘图
具体结果如下~~~
3.数组与矩阵
建立方式:
建立一维数组(向量)两种方式:
行向量a=[1 2 3]或者a=[1,2,3],列向量a=[1;2;3]
x=first:last
x=first:increment:last(从first开始,以increment为增量,不超过last的行向量)
x=linspace(first,last,number)
注意第四条,数据非随机生成,而是以固定间隔在first与last之间取number个数字
多维数组
a=[1 2 3;2 3 4;3 4 5]这是3*3的数组
数组元素列优先!!
向量可以转置,比如b=a’;(无论是一维还是二维,都可以转置)
元素的访问
A=[1 2 3;4 5 6;7 8 9];
以A(a:b,c:d)为格式——a:b是取a到b行,c:d是取c到d这些行
A(a:b)——取A数组第a个到第b个元素,虽然是以行为下标优先,输出却是以列为优先的
A(1:end)——将元素正序输出(以向量形式),列优先读取
A(end:-1:1)——将元素反序输出,列优先读取
A([a b])——取数组A第a个和第b个元素
A(i,j)——取数组第i行j列元素
A(x)——下标为x的元素(列优先)
A(a,:)——第a行元素,类似的第b列元素
A(i:j,:)=[]——删除i到j行的元素(直接删除,而不是利用空格替换)。
数组的运算
加减乘是普通的数组之间的加减乘
“./”运算符是对数组中的每个元素单独进行计算,a./b即a的每个元素除b每个元素,"/."则b除以a
“.^”是幂的运算,也是有a^b,b^a两种形式
数组的操作函数
isnumeric();%判断是否为数值型数组
isreal();%判断是否为实数型数组
isinteger();%判断是否为整型数组,(matlab默认存储double型)
islogical();%判断是否为逻辑型数组
find()函数:查找数组元素下标符合条件的
sort();%对每列的元素进行排序
size()%返回数组的行数和列数
length()%返回一维数组中的数组长度,或是二维数组中行最长长度和列最长长度中较长的一个
某些特殊矩阵的建立
zeros(m,n)%建立全0矩阵
ones(m,n)%建立全1矩阵
eye(m,n)%建立对角线全为1 的矩阵
rand(m,n)%(0,1)随机分布的矩阵
randn(m,n)%相比上一个,均值为0,方差为1
方阵的特殊操作——方阵必须是n*n的二维数组
det(A)——方阵的行列式(已经计算出值,为|A|)
inv(A)——方阵的逆
eig(A)——方阵的特征值与特征向量