matlab入门
MATLAB 是“matrix laboratory”的缩写形式。MATLAB® 主要用于处理整个的矩阵和数组,而其他编程语言大多逐个处理数值。矩阵是指通常用来进行线性代数运算的二维数组。
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB拥有丰富的算法工具箱,因此在工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域都能看到它的身影,可谓是无处不在。功能强大,MATLAB 安装包比较大,R2018b版12G。
matlab安装包体积巨大,下载安装都是比较耗时的,正版软件太贵。你可以使用云超级应用,简单的来说就是软件搭载服务器上,你不用安装到本地电脑,只要有网络即可进行学习实验。可以用此了解学习。
在线版matlab(网页版,web版),不用安装了,可以用此了解学习.
没有注册账号,先注册,注册时需要使用手机接收验证消息。
官网在线体验 MATLAB Login | MATLAB & Simulink
第一次打开需要注册账号,参见下图:
下面以桌面安装版为例介绍
下载地址https://pan.baidu.com/s/1Pl64M42QHU78DbpobQpXPQ 提取码: d8jt ,是R2018b中文版,安装过程还是比较容易的,就是下载较慢,安装时间较长,就不多言了。下面介绍R2018b安装版本的使用。【特别提示,上面的在线版本目前是R2015a,基本使用差不多】
使用 MATLAB 时,可发出创建变量和调用函数的命令。例如,通过在命令行中键入以下语句来创建名为 a 的变量:
>>a = 1
MATLAB 将变量 a 添加到工作区,并在命令行窗口中显示结果。参见下图:
创建更多变量:
>>b = 2
>>c = a+b
如果未指定输出变量,MATLAB 将使用变量 ans(answer 的缩略形式)来存储计算结果。
>> sin(pi/2)
ans =
1
注:matlab中的圆周率用pi表示
如果语句以分号结束,MATLAB 会执行计算,但不在命令行窗口中显示输出,运算结果保存在工作区中,如下图所示:
按 (↑) 和 (↓) 可以重新调用以前的命令。若要快速定位,可以先键入命令的前几个字符之后按箭头键。例如,要重新调用命令 b = 2,请键入 b,然后按向上箭头键。
处理文本时,将 字符序列 括在单引号中。可以将 文本 赋给 变量:
myText = 'Hello, world';
如果文本包含单引号,则在定义中使用两个单引号:
otherText = 'You''re right'
MATLAB矩阵表示及矩阵元素的引用
冒号表达式: 起始:[步长:]终止 生成行向量,省略步长,则默认为1 如起始:终止
等价于linspace (a,b,n) 函数,此matlab函数返回a与b之间均匀间隔点的n个元素的行向量,当n省略时,生成100个。
阅读文献时请注意:矩阵中行列的意思,大陆将水平(横)的称行,垂直(竖)的称列,但台湾的行和列与大陆恰好相反。即大陆把row叫行,把column叫列,台湾把row叫列,把column叫行,跟我们大陆正好相反。
matlab中引用元素方法:①下标。 ②索引序号 他们之间的关系A(i,j)的序号为(j-1)×m+i ③布尔(逻辑)法。
下面介绍之。
矩阵同一行元素可用逗号或空格分隔。
【注】(1)matlab中元素中下标的序号是从一开始的;(2)matlab中元素按列存储,依次第一列,第二列等。Matlab的存储顺序是8,3,4,1,5,9,6,7,2,如下图所示:
★下标法引用的例子
A(i,j):其中ii和jj可以是一维向量、标量、“:”号或者“end”,示例如下:
A(2:3,3:-1:1)表示引用数组中的2~3行,3~1列对应的元素
>>A(2:3,3:-1:1)
ans =
7 5 3
2 9 4
A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列
>>A(:,end)
ans =
6
7
2
A(1,end-1)表示引用第1行倒数第2个元素
>>A(1,end-1)
ans =
1
A([2 1 3 3],[1 1 2 2 1])表示引用按两个向量引用指定的元素,即A中的第2,1,3,3行和第1,1,2,2,1列对应的元素
>>A([2 1 3 3],[1 1 2 2 1])
ans =
3 3 5 5 3
8 8 1 1 8
4 4 9 9 4
4 4 9 9 4
★索引法引用(存储顺序) 的例子
A(index):index可以是任意的数组,index的元素必须是正整数。
下标和索引之间可以通过ind2sub和sub2ind函数相互转换,具体可以看帮助(在命令行窗口中输入 help 函数名 按下回车键)
[I,J] = ind2sub(siz,IND)
IND = sub2ind(siz,I,J)
还有使用A(:)就可以将数组A转换为列向量
A(8):表示引用A的第8个元素
ans =
7
B=A([1 5 2 2 1 3]):表示依次引用A的第1,5,2,2,1,3个元素,返回与index尺寸相同的数组,也就是说size(B)=size(index)
B =
8 5 3 3 8 4
A([2 7 9;1 1 1;8 7 6]):返回的时侯是一个3*3的矩阵
ans =
3 6 2
8 8 8
7 6 9
★布尔法引用
A(X):X是一个有0和1组成布尔型数据,且size(A)=size(X),对应位置为1则留下该数据,0则去掉,最后按A中的存储顺序,返回一个列向量
假如说A是3*3的数组
A(logical([1 0 0;0 1 0;0 0 1])):表示引用了数组A的对角线元素,注意必须使用logical将0/1数组转换为布尔型
A(x)%引用对应位置为1的数据,返回列向量
x=logical([1 1 0;0 1 1;1 0 1])%将double转化为boolean型数据
x =
3×3 logical 数组
1 1 0
0 1 1
1 0 1
>> A(x)%引用对应位置为1的数据,返回列向量
ans =
8
4
1
5
7
2
如果想要写一段小程序,只需要在每一句话的后面加一个英文分号,再回车即可。如实现两个二维矩阵相加的小程序a+b。
>> a=[5 6;7 8];
>> b=[1 2;3 4];
>> c=a+b;
>> disp(c)
6 8
10 12
二维图和三维图
使用 plot 函数来创建二维线图,例如,绘制从 0 到 之间的正弦函数值:
x = 0:pi/100:2*pi;
>> y = sin(x);
>> plot(x,y)
运行结果如下:
三维图通常显示一个由带两个变量的函数(即 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)
运行结果如下:
MATLAB 提供两种程序文件:
脚本,包含一系列命令和函数调用,不接受输入参数或返回输出参数。它们处理工作区中的数据。脚本是一个包含多行连续 MATLAB 命令和函数调用的扩展名为 .m 的文件。在命令行中键入脚本名称即可运行该脚本。
函数,可接受输入参数,并返回输出参数。函数的第一行以关键字 function 开头。它提供函数名称和参数顺序,函数主体可以包括有效的 MATLAB 表达式、控制流语句、注释、空白行和嵌套函数。您在函数内创建的任何变量都存储在特定于该函数的工作区内,该工作区独立于基础工作区。程序文件可以包含多个函数。如果文件仅包含函数定义,则第一个函数是主函数,也是 MATLAB 与文件名关联的函数。主函数或脚本代码后面的函数称为局部函数。局部函数只能在文件内使用。
注:MATLAB函数分为内置函数和用户自定义函数。
创建脚本文件:
您可以通过以下方式创建m脚本文件:
· 单击主页选项卡上的新建脚本 按钮 或 新建→脚本 打开编辑器,参见下图:
此时,就可以在编辑器中就可输入脚本代码了。
·也可以在命令行窗口中,用 edit 命令创建m脚本文件:
>> edit plotrand
建立一个名为plotrand.m的文件:
单击“是”按钮
打开编辑器,输入代码,参见下图:
输入一些绘制随机数向量的代码:
% Generate random data from a uniform distribution
%and calculate the mean. Plot the data and the mean.
n = 50; % 50 data points
r = rand(n,1);
plot(r)
% Draw a line from (0,m) to (n,m)
m = mean(r);
hold on
plot([0,n],[m,m])
hold off
title('Mean of Random Uniform Data')
注:编写代码时,最好添加描述代码的注释。使用百分比 (%) 符号添加注释。
单击运行结果如下:
也可以在命令行中键入脚本名称来要运行脚本:
>> plotrand
要运行脚本,该文件必须位于当前文件夹或搜索路径中的某个文件夹内。默认情况下,MATLAB 安装程序创建的 MATLAB 文件夹位于此搜索路径中。如果要将程序存储在其他文件夹,或者要运行其他文件夹中的程序,请将其添加到此搜索路径。
创建用户自定义函数
脚本和函数都允许您通过将命令序列存储在程序文件中来重用它们。此类型的函数必须在文件中而不是在命令行中定义。通常,您可以将函数存储在其自己的文件中。在这种情况下,最佳做法是对函数和文件使用相同的名称(此示例中为 fact.m)。例如,名为 fact 的以下函数用于计算某个数 (n) 的阶乘并返回结果 (f)。在命令行中输入 edit fact
打开编辑器,输入代码
function f = fact(n)
f = prod(1:n);
end
计算 5 的阶乘。
>>x = 5;
>>y = fact(5)
y =
120
从 R2016b 开始,用于存储函数的另一个选项是将函数包含在脚本文件的末尾。例如,创建一个名为 mystats.m 并包含一些命令和两个函数 fact 和 perm 的文件。该脚本用于计算 (3,2) 的置换。
x = 3;
y = 2;
z = perm(x,y)
function p = perm(n,r)
p = fact(n)*fact(n-r);
end
function f = fact(n)
f = prod(1:n);
end
从命令行调用该脚本。
>>mystats
z =
6
有了这些基础,就可以参考下面链接深入学习了。
官方MATLAB入门教程
MATLAB Onramp | Self-Paced Online Courses - MATLAB & Simulink
在线帮助文档地址