教程
注意:命令行窗口输入命令后加上结束符引号;否则会显示该命令的结果
桌面基础知识
Matlab 主要面板:
当前文件夹:用于显示当前位置和文件
编辑区:显示打开的编辑文本
命令行窗口:交互命令及结果显示;可用 clc 命令清空该窗口
工作区:保留程序运行过程中的变量;可用 clear 命令清空该窗口所有变量
在命令行窗口,可新建变量或调用函数,如下:
a = 1; b = 0; cos(b) = 1; 三角函数中参数默认是弧度值
乘法 a*b = 0; a+b=1;
矩阵和数组
MATLAB 是 Matrix laboratory的简称,主要用于整个处理矩阵和数组运算,而非其他变成语言逐个处理数值。
所有Matlab变量都是多维数组,与数据类型无关,矩阵是通常用来进行线性代数运算的二维数组。
数组创建,元素用逗号或空格分隔:
行矢量 a = [1 2 3 4]
多行矩阵(行间分号隔开) a = [1,2;3,4]
调用函数创建 z=zeros(5,2) 零矩阵 ones(1,3) 1矩阵 rand(1,2) 随机矩阵,范围0-1
矩阵和数组运算
a + 10 = [11 12 13 14] 矩阵加一个数就是给矩阵中的每个元素都加上这个值
sin(a) 用函数处理矩阵,等于用函数处理矩阵中的没有给元素值
转置矩阵表达为矩阵右上一瞥,如 a' = [1;2;3;4]
a的逆矩阵 inv(a) a*inv(a) = E 矩阵乘其逆矩阵结果为单位矩阵()对角线元素为1,其余为0 注意:可逆矩阵一定是方阵
显示多位小数,用 format long; a= a * inv(a)
显示更少小数,用 format short ; 注意:format 只影响数字显示,不影响数字计算和保存
矩阵元素乘法,用 .* 即 p = a .* a,对应元素相乘
矩阵元素除法,矩阵元素幂运算规则同上
允许使用单一算术运算符或函数来处理矩阵中的“所有值”
串联:是连接数组或矩阵形成更大数组或矩阵的过程
直接用方括号包围所需多个数组即可串联,如 A=[a a]
复数
复数包含实部和虚部,虚数单位是-1的平方根 sqrt(-1)
复数的虚部用i或j
数组索引
Matlab的每一个变量都是一个数组,访问某个元素用索引
幻方矩阵(每行、每列和对角线元素相加和相等) A = magic(4)
索引用法,多维下标索引A(4,2) 单一下标索引或线性索引A(14) 这两种表示同一元素
引用矩阵外侧元素会报错,但可制定外部元素扩容数组,以便容纳新元素,扩容元素所在位置的新填充元素值为0
多个索引,用 A(1:3,2) 该表达式 用:表示范围 A(3,:)表示多有列
冒号创建等距矢量值,如 B=0:10:100; 0到100之间,间隔为10创建矢量值
工作区变量
工作区保持新创建的数值或从其他程序导入的变量
使用 whos 命令 可查看当前工作区的所有变量的具体信息
另外,工作区窗口也会显示所有变量
工作区变量的保存 save 文件名.mat
工作区变量的加载 load 文件名.mat
文本和字符
字符变量赋值:text = 'hello' 用单引号包围字符变量
当文本本身包含单引号时,在文本的单引号后加一个单引号,如 a = you''re right
字符数据也可串联,同矩阵
数值字符转换:用 num2str() str2num()
调用函数
Matlab提供了大量执行矩阵计算任务的函数或称为方法
求矩阵最大值:max(A),max(A,B)
多个输出参数时,结果永方括号包围,如 [max,location] = max(A) 求矩阵A的最大值和位置
函数参数中如果有字符,需要用单引号括起来,如 diso('hello world')
调用无输入无输出参数时,键入函数名称即可,如 clc clear等
二维图和三维图
绘图
创建二维图,用plot(x,y) x = 0:pi/100:2*pi; y =sin(x),
坐标轴标记 xlabel('x') ylabel('y')
标题 title('Plot of the Sine Function')
线条及类型 plot(x,y,'r--') 红色短划线,还可用'g:*' + o 等等
同一幅图重新绘图会覆盖上次绘图,除非 hold on 会不覆盖新增所有新增项
图例 legend('sin','cos')
hold off 关闭窗口
三维绘图
三位绘图有两个变量,一般用meshgrid()函数生成二维网格坐标
[X,Y] = meshgrid(x,y) meshgrid(x) = meshgrid(x,x) x,y是一维向量。生成的X,Y矩阵网格大小一致,都是length(y) * length(z); X 的每一行是x,Y的每一列是y
一组(x,y)的点生成后,创建三维函数 Z = X.*exp(-X.^2-Y.^2);
画图:mesh(X,Y,Z)
画图:surf(X,Y,Z)
surf和mesh两个函数以三维形式显示曲面图。mesh颜色线条,surf颜色面
子图
subplot函数用于在同一窗口不同区域显示多个绘图
cylinder(x) 用于生成半径高度都为1的圆柱面的三维坐标,x决定圆柱面的间距和密集程度。
t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(4*cos(t));
subplot(2,2,1); mesh(X); title('X');
subplot(2,2,2); mesh(Y); title('Y');
subplot(2,2,3); mesh(Z); title('X,Y,Z');
subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');
变成和脚本
脚本就是包含多行Matlab命令和函数调用的扩展名为.m的文件。
示例脚本
创建脚本 edit plotrand
编码时,添加注释 %% 或 % Generae random data from a uniform distribution
脚本加载,直接输入脚本名称即可 plotrand
循环及条件语句
for k = 1:5 end
if a>80 else if b >100 else end
脚本位置
Matlab在特定位置中查找脚本,要运行脚本,则该文件必须位于当前文件夹或搜索路径中的某个文件夹内
帮助文档
所有Matlab函数都有辅助文档,包括示例,输入输出和调用语法。
打开某个函数文档:doc mean
mean( 此时会提示函数语法
help mean 可在命令行窗口查看响应函数的简明文档
点击菜单栏的问号可访问产品的完整文档