matlab入门(适合初学者)

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

在线帮助文档地址

MATLABDocumentation- MathWorks 中国

posted @ 2023-07-21 08:57  SymPny  阅读(42)  评论(0编辑  收藏  举报