小言_互联网的博客

Matlab简单入门

485人阅读  评论(0)

目录

一、help和doc命令

二、数组

1.常数

 2.变量

3.向量

 1.直接构造法

 2.增量方法构造向量

 3.使用linspac构造向量

4.使用logspace构造向量 

 三、矩阵

1.简单的创建方法 

 2.使用meshgrid构造矩阵

 3.构造特殊矩阵

4.聚合矩阵 

 5.描述数组和矩阵

 6.排序、反转、转置、重塑

7.获取矩阵的元素 

 1.编号索引

2.线性索引

 3.使用冒号

4.使用end关键字来获取矩阵的元素 

 8.多维数组

1.创建一个正态分布的随机数组

 2.生成一个元素均为同一常数的数组

 3.使用cat生成多维数组

 四、数据类型

 1.字符串

1.创建字符串

 2.类型转换

2.函数句柄

 五、M文件设计

1.变量

2.表达式

3.数值表示

 4.运算符

1.算术运算符

2.关系运算符

3.逻辑运算符

 4.运算符的优先级

5.流程控制 

六.函数

1.匿名函数

 2.检查输入参数的个数

 3.函数句柄


一、help和doc命令

help和doc命令能帮助我们在不知道陌生的函数时,查询到我们函数的说明文档

help函数能帮助我们直接在命令区简洁地显示我们想要查询的函数的命令 

help logspace

doc logspace

 doc命令能够帮助我们打开某一个函数的详细的信息

二、数组

在MATLAB中所有的数据都以数组的形式保存

1.常数

常数

返回值

ans

默认变量名,保存最近的结果。如果不给表达式指定一个输出变量,MATLAB会自动将结果保存到ans变量中

eps

浮点相对精度。是MATLAB用于计算的容限

realmax

计算机可以表示的最大浮点数

realmin

计算机可以表示的最小浮点数

pi

圆周率

i, j

虚数单位

inf

无限值。类似n/0的表达式生成的结果为inf,其中n为非0实数

NaN

表示不合法的数值,非数值。类似0/0和inf/inf的表达式生成的结果,与NaN有关的算术运算结果,以及n/0,n为复数时的计算结果都是NaN

computer

计算机类型

version

MATLAB版本字符串

 2.变量

MATLAB变量的第一个必须是字母

MATLAB区分大小写(a与A是不同的变量)

3.向量

 1.直接构造法

a=[1 2 3 4 5 6 7]

 2.增量方法构造向量

增量法的第一个数据为初始值,第二个数据为步长,第三个数据为结束值。 


  
  1. a= 1 : 2 : 10
  2. b= 10 :- 2 : 1

 3.使用linspac构造向量

linspace第一个参数为 初始值,第二个值为结束值,第三个值为生成的向量中的元素个数是按照等间隔的方式构造的向量

c=linspace(10,1,20)

4.使用logspace构造向量 

第一个参数为10^first,第二个参数为10^last,第三个参数为生成的元素个数

x=logspace(0,1,10)

 三、矩阵

1.简单的创建方法 

我们在创建矩阵的时候使用分号来分隔,但是我们必须保证每一行的元素个数是相同的。

a=[1,2,3;4,5,6;7,8,9]

 2.使用meshgrid构造矩阵

此 MATLAB 函数 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有
    length(y) 个行和 length(x) 个列。

    [X,Y] = meshgrid(x,y)
    [X,Y] = meshgrid(x)

    [X,Y,Z] = meshgrid(x,y,z)
    [X,Y,Z] = meshgrid(x)

 

 3.构造特殊矩阵

函    数

功            能

ones

创建一个所有元素都为1的矩阵

zeros

创建一个所有元素都为0的矩阵

eye

创建对角线元素为1,其他元素为0的矩阵

diag

根据向量创建对角矩阵

magic

创建一个方形矩阵,其中行、列和对角线上元素的和相等

rand

创建一个矩阵或数组,其中的元素为服从均匀分布的随机数

randn

创建一个矩阵或数组,其中的元素为服从正态分布的随机数

randperm

创建一个向量(1×n的矩阵)

4.聚合矩阵 

在下面的代码中,我们使用了C来将A于B上下拼接在一起。

在组合不同矩阵的时候,高精度的矩阵和低精度的矩阵进行组合的时候新的矩阵是低精度的。

 5.描述数组和矩阵

•大小 – size函数

•最大维的长度- length函数

•维数 – ndims函数

•元素个数 – numel函数

 

 6.排序、反转、转置、重塑

•排序 - sort/sortrows函数

•翻转 – flip/fliplr/flipud函数

•转置 – rot90/transpose函数

•重塑 – reshape, squeeze函数

 ​​​​​​​

 

7.获取矩阵的元素 

•使用编号索引

•使用线性索引

•使用冒号

•使用end关键字

 1.编号索引

2.线性索引

由于MATLAB在保存数组的时候是按照列进行保存的,所以我们在进行线性索引的时候需要按照列进行计算。

在下面的代码中我们看到我们所查找的是C(15)我们首先查找的是第一列,第一列一共有9个元素,所以我们在第二列的第六个元素就是我们的C(15)

 3.使用冒号

使用冒号可以获取某一行或者某一列的全部元素,或者整个数组本身。

 

4.使用end关键字来获取矩阵的元素 

这里的end就表示我们的最后一个元素,然后我们是从1开始取值,到结尾,步长为3,获得我们所有的数据

C(1:3:end)

 8.多维数组

1.创建一个正态分布的随机数组

在下面的代码中,我们所生成的就是一个5×3×2的三维数组

 2.生成一个元素均为同一常数的数组

 3.使用cat生成多维数组

 

 四、数据类型

变量的数据类型

     double型数值类型

     非double型数值类型

     字符串

     日期和时间数组

     分类数组

     表

     时间表

     结构数组

     单元数组

     函数句柄

 

 1.字符串

•字符串的创建

•字符串的比较

•字符串的聚合

•字符串的搜索和替换

1.创建字符串

 在创建字符串的时候,使用单引号或者是双引号都是可以的。

 

当然我们也可以创建二维的字符串,但是每一行字符串的元素个数需要相同,并且我们可以使用二维数组的索引来操作我们的二维字符串。

 

 

 2.类型转换

使用mat2str函数将数组转换为字符串

使用int2str函数将整型数据转换为字符串类型数据

 

2.函数句柄

 函数句柄用于保存MATLAB中所有与函数运行有关的信息

这里我们定义了一个函数(.表示点乘,也就是对我们矩阵中的每一个元素进行处理。)

所以下面的代码所表示的函数为


  
  1. function f=myfun(x)
  2. f=( 3-2.*x).^2.* x;

x=fminbnd(@myfun,0,1.5)

在上面的代码中,我们实现了将0和1.5传入我们上述的方法中,然后寻找最小值的过程,然后我们就能够得到我们的x值为1.4999 

 

 五、M文件设计

    变量

    表达式

    流程控制

    函数

    M文件

    程序调试与错误处理

1.变量

局部变量:局部变量的作用范围仅限于本函数 

全局变量:全局变量用global关键字进行声明,其作用范围为整个M文件

2.表达式

•数值表示

•运算符

•处理字符串表达式

3.数值表示

 MATLAB使用传统的数值表示方法。对于比较长的数,使用科学计数法,用字母e指定以10为底的幂次。虚数用i或j作为后缀。

 

 4.运算符

•算术运算符

•关系运算符

•逻辑运算符

•运算符的优先级

1.算术运算符

运算符

说   明

运算符

说    明

+

.*

逐元素点乘

-

./

逐元素右除

*

矩阵乘

.\

逐元素左除

/ (a/b)

矩阵右除,a乘b的逆

.^

逐元素求幂

\ (a\b)

矩阵左除,a的逆乘b

'

复数共轭转置

^

矩阵的幂

()

指定计算顺序

2.关系运算符

运算符

描  述

运算符

描  述

<

小于

>=

大于或等于

<=

小于或等于

==

等于

>

大于

~=

不等于

3.逻辑运算符

运算符

函 数

描        述

示    例

&

and

两个数组中相同位置的值都非0时返回1,否则返回0

A & B=01001

或 and(A,B)

|

or

两个数组中相同位置的值有一个非0时返回1,否则返回0

A | B=11101

或 or(A,B)

~

not

对数组中的元素取反,即非0值变为0,0变为1

~A=10010

或 not(A)

xor

两个数组中相同位置的元素只有一个非0时返回1,否则返回0

xor(A,B)=10100

any(C)

如果向量中有任何一个元素非0,返回1;否则返回0

any(C)

ans=

     0 1 1

all(C)

如果向量中所有元素非0,返回1,否则返回0

all(C)

ans=

     0 1 0

&&

如果符号两端的表达式均为真,返回true(1);否则返回0

a=8;

a>5 && a<10

ans=

    1

||

如果符号两端的表达式有一个为真,返回true(1);否则返回0

a=11;

a>5 || a<10

ans=

    1

xor函数的演示

 

 4.运算符的优先级

•小括号()

•转置(.')、幂(.^)、复数共轭转置(')、矩阵的幂(^)

•一元的加(+)、一元的减(-)、逻辑否(~)

•乘(.*)、右除(./)、左除(.\)、矩阵乘(*)、矩阵右除(/)、矩阵左除(\)

•加(+)、减(-)

•冒号操作符(:)

•小于(<)、小于或等于(<=)、大于(>)、大于或等于(>=)、等于(==)、不等于(~=)

•逐元素AND(&)

•逐元素OR(|)

•&&

•||

5.流程控制 

•条件控制

•循环控制

•程序终止控制

1.条件控制

这里我们定义了一个流程控制的函数。 

 

这是我们测试的结果 

 

 当然我也可以通过Switch-case语句来实现流程控制

 

 2.循环控制

for循环

while循环

for循环 

 

while循环 


  
  1. function f =testif (x )
  2. sum = 1;
  3. while (x >= 1 )
  4. sum = sum *x;
  5. x =x - 1;
  6. f = sum;
  7. end

 

 3.程序终止控制

命令

用在何处

描        述

break

for 或while循环 

它出现时,退出循环,在嵌套的循环中,进入相邻的外层循环

continue

for 或while循环 

在本循环中跳过剩余的语句,进入本循环的下一次迭代

return

任意位置

它出现时,立即退出函数,进入函数的调用函数中

六.函数

1.匿名函数

匿名函数在实现一些简单的函数的时候能够快速地实现

fhandle=@(arglist) expr

 

 2.检查输入参数的个数

使用nargin可以确定函数输入的参数的个数,nargout函数可以确定输出参数的个数


  
  1. function c = w (a , b )
  2. if (nargin == 1 )
  3. c = 1;
  4. elseif (nargin == 2 )
  5. c = 2;
  6. end

 3.函数句柄

句柄函数可以让我们的函数用一个简单的变量去使用


  
  1. function c = w (x )
  2. c = sin (x );
  3. end

在下面的代码中,我们将w方法传递给了我们的x

然后当我们可以通过feval函数,第一个参数传入我们的方法,第二个参数传入我们的具体的自变量。 

 当然我们也可以传入一串数据来进行批量计算

 


转载:https://blog.csdn.net/weixin_62684026/article/details/125477745
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场