矩阵与数组
数组创建
要创建每行包含四个元素的数组,中间要使用都好(,)或空格隔离各元素。
a=[1 2 3 4]
或者a=[1,2,3,4]
这种数组为行向量。要创建包含多行矩阵要使用分号隔开 创建矩阵的其他方法还有ones,zeros,rand等。zeros(5,1)代表生成一个5行1列的零矩阵(0,0,0,0,0)T
rand 则表示随机生成矩阵。
二维图和三维图
要创建二维线图,使用plot函数,例如,绘制从0到2Π的正弦函数值。
x = 0:pi/100:2*pi; y = sin(x); plot(x,y)
可以标记轴并添加标题
xlabel('x') ylabel('sin(x)') title('Plot of the Sine Function')
通过向 plot
函数添加第三个输入参数,您可以使用红色虚线绘制相同的变量。
plot(x,y,'r--')
'r--'
为线条设定。每个设定可包含表示线条颜色、样式和标记的字符。标记是在绘制的每个数据点上显示的符号,例如,+
、o
或 *
。例如,'g:*'
请求绘制使用 *
标记的绿色点线。
请注意,为第一幅绘图定义的标题和标签不再被用于当前的图窗窗口中。默认情况下,每次调用绘图函数、重置坐标区及其他元素以准备新绘图时,MATLAB® 都会清空图窗。
要将绘图添加到现有图窗中,请使用 hold on
。在使用 hold off
或关闭窗口之前,当前图窗窗口中会显示所有绘图。
x = 0:pi/100:2*pi; y = sin(x); plot(x,y) hold on y2 = cos(x); plot(x,y2,':') legend('sin','cos') hold off
三维绘图
三维绘图通常显示一个由带两个变量的函数(即z=f(x,y))定义的曲面图,要计算z,首先要使用meshgrid在函数的域中创建一组(x,y)点,然后创建曲面图
[X,Y] = meshgrid(-2:.2:2); Z = X .* exp(-X.^2 - Y.^2);
surf(X,Y,Z)
surf
函数及其伴随函数mesh
以三维形式显示曲面图。surf
使用颜色显示曲面图的连接线和面。mesh
生成仅以颜色标记连接定义点的线条的线框曲面图。
子图
使用 subplot
函数可以在同一窗口的不同子区域显示多个绘图。
subplot
的前两个输入表示每行和每列中的绘图数。第三个输入指定绘图是否处于活动状态。例如,在图窗窗口的 2×2 网格中创建四个绘图。
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('Z'); subplot(2,2,4); mesh(X,Y,Z); title('X,Y,Z');
脚本
要创建脚本,要使用edit命令
edit mysphere
该命令会打开一个名为 mysphere.m
的空白文件。输入代码,以创建一个单位球、将半径加倍并绘制结果图:
[x,y,z] = sphere; r = 2; surf(x*r,y*r,z*r) axis equal
接下来,添加代码以计算球的表面积和体积:
A = 4*pi*r^2; V = (4/3)*pi*r^3;
编写代码时,最好添加描述代码的注释。注释能够让其他人员理解您的代码,并且有助于您在稍后返回代码时再度记起。使用百分比 (%
) 符号添加注释。
% Create and plot a sphere with radius r. [x,y,z] = sphere; % Create a unit sphere. r = 2; surf(x*r,y*r,z*r) % Adjust each dimension and plot. axis equal % Use the same scale for each axis. % Find the surface area and volume. A = 4*pi*r^2; V = (4/3)*pi*r^3;
将文件保存在当前文件夹中。要运行脚本,请在命令行中键入脚本名称:
mysphere
还可以使用编辑器中的运行按钮运行脚本
实时脚本
您可以使用实时脚本中的格式设置选项来增强代码,而不是以纯文本编写代码和注释。实时脚本有助于您查看代码和输出并与之交互,还可以包含格式化文本、方程和图像。
例如,通过选择另存为并将文件类型更改为 MATLAB 实时代码文件 (*.mlx
),将 mysphere
转换为实时脚本。然后,用格式化文本替换代码注释。
要使用edit 命令创建新的实时脚本,要在文件夹中包含。mlx扩展名
edit newfile.mlx
循环及条件语句
在任何脚本中,您都可以定义按循环重复执行或按条件执行的代码段。循环使用 for
或 while
关键字,条件语句使用 if
或 switch
。
循环在创建序列时很有用。例如,创建一个名为 fibseq
的脚本,该脚本使用 for
循环来计算斐波那契数列的前 100 个数。在这个序列中,最开始的两个数是 1,随后的每个数是前面两个数的和,即 Fn = Fn-1 + Fn-2。
N = 100; f(1) = 1; f(2) = 1; for n = 3:N f(n) = f(n-1) + f(n-2); end f(1:10)
运行该脚本时,for
语句定义一个名为 n
的计数器,该计数器从 3 开始。然后,该循环重复为 f(n)
赋值,n
在每次执行中递增,直至达到 100。脚本中的最后一条命令 f(1:10)
显示 f
的前 10 个元素。
ans = 1 1 2 3 5 8 13 21 34 55
条件语句仅在给定表达式为 true 时执行。例如,根据随机数的大小为变量赋值:'low'
、'medium'
或 'high'
。在本例中,随机数是在 1 和 100 之间的一个整数。
num = randi(100) if num < 34 sz = 'low' elseif num < 67 sz = 'medium' else sz = 'high' end
语句 sz = 'high'
仅在 num
大于或等于 67 时执行。
脚本位置
MATLAB 在特定位置中查找脚本及其他文件。要运行脚本,该文件必须位于当前文件夹或搜索路径中的某个文件夹内。
默认情况下,MATLAB 安装程序创建的 MATLAB
文件夹位于此搜索路径中。如果要将程序存储在其他文件夹,或者要运行其他文件夹中的程序,请将其添加到此搜索路径。在当前文件夹浏览器中选中相应的文件夹,右键点击,然后选择添加到路径。