草庐IT

matlab---基础知识

物理系的hhpp 2023-12-30 原文

目录

前言

一、matlab系统环境

1.matlab的界面

 换行方式

 2.设置当前文件夹

 cd函数怎么建立

​编辑 3.工具区窗口

 4.简单的赋值应用

5. matlab的搜索路径

如何设置文件搜索路径

 思考:

二、matlab数值数据

1.数值数据类型的分类

2.数值数据输出格式

3.常用数学函数

(1)函数的调用格式为:

(2)常用函数的应用

 (3)函数应用举例

三.变量及其操作

1.变量与赋值语句

2.赋值语句

3.预定义变量

4.变量的管理

(1)内存变量的删除与修改

(2)内存变量文件

四. matlab矩阵的表示

1.矩阵的建立

2.冒号表达式

 3.结构矩阵和单元矩阵

五.矩阵元素的引用

1.矩阵元素的引用方式

    (1)通过下标来引用矩阵的元素

     (2)通过序号来引用

               (3)利用逻辑符号来引用

六.MATLAB基本运算

1.算术运算

2.关系运算

3.逻辑运算

七.字符串处理

1.字符串的表示

2.字符串的操作

(1)字符串的执行

 (2)字符串与数值之间的转换

(3)字符串的比较

(4)字符串的查找与替换

总结


前言

matlab第一节:基础知识

一、matlab系统环境

1.matlab的界面

 换行方式

 2.设置当前文件夹

 cd函数怎么建立

 3.工具区窗口

 4.简单的赋值应用

 clear:清屏。

format的介绍

5. matlab的搜索路径

变量——>内部函数——>程序文件——>当前文件夹下的程序文件——>文件搜索路径下文件夹的程序文件

如果定义变量时,请不要使用已有的特定函数名。

如何设置文件搜索路径

1.用path命令设置文件搜索路径。例如:

>>path(path,'e:\mat.work')

2.用对话框设置文件搜索路径。

clc:清除所有命令。

help elfun:查找一些简易的函数

将光标放置在不认识的函数上按下F1键可以查找该函数的含义

 思考:

(1)如果在当前文件夹和搜索路径文件夹下建立了一个同名的M文件,那么在命令行窗口输入文件名时,执行哪个文件?

程序文件搜索顺序现在当前文件夹中搜索再在文件搜索路径中查找

(2)如果用户建立的文件即没有保存在文件夹下,也没有保存在文件搜索路径中,那么在命令行窗口输入文件名时,会出现什么信息?

出现错误信息

二、matlab数值数据

1.数值数据类型的分类

1.整型:

(1)无符号:8位(00000000~11111111)

(2)带符号:8位(10000000~01111111)

uint8函数将数值数据转换为无符号的8位整数,int8函数将数值数据转换为带符号8位整数

>>x=int8(129)
x=
   127  %%带符号的最大为127,所以转换时只能转成127
>>x=uint8(129)
x=
   129  %%无符号的最大为255,所以转换后仍为129

2.浮点型:

(1)单精度:四个字节

(2)双精度:八个字节(精度更高)(数值数据默认为双精度)

使用single,将其他类型的数转换为单精度。

使用double,转换为双精度

>>class(4)
ans=
double   %%调用class函数
>>class(single(4))
ans=
single   %%调用single函数

3.复数型:

复数类型包括实部与虚部两个部分,实部和虚部默认为双精度型,虚部单位用i或j表示

>>6+5i
ans=6.0000+5.0000i
>>6+5j
ans=6.0000+5.0000i

使用real函数求实部,用imag函数求虚部 

2.数值数据输出格式

format命令的格式:format格式符

>>format long
>>50/3
ans=16.666666666666668
>>format
>>50/3
ans=16.6667   %%format只影响数据输出格式不影响其定义

3.常用数学函数

(1)函数的调用格式为:

    函数名(函数自变量的值)

            函数的自变量规定为矩阵变量,当然也可以是标量,标量本身为矩阵的一种特例。

            函数在运算时是将函数逐项作用与矩阵的每个元素上,所以最后运算的结果为一个与自变量同型的矩阵

>>A=[4,2;3,6]
A=
  4  2
  3  6  %%创建矩阵A 2*2
>>B=exp(A)
B=
  54.5982   7.3891
  20.0855 403.4288    %%调用exp函数,求自然指数
                         B中数据均为A求自然指数所对应

(2)常用函数的应用

     1.三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以角度为单位的函数就在函数名后加上"d",以示区别。

>>sin(pi/2)
ans=
    1
>>sind(900
ans=
    1

   2.abs函数可以求实数的绝对值,复数的模,字符串的ASCII值

>>abs(-4)
ans=
   4
>>abs(3+4i)
ans=
   5
>>abs('a')
ans=
  97

  3.取整函数

 round函数按照四舍五入规则取整

 ceil函数为向上取整,取大于等于这个数的第一个整数

 floor函数向下取整,取小于等于这个数的第一个整数

 fix函数是固定取靠近0的数,舍去小数取整

4.字符长度

intmin(int8)=-128 :int8的最小范围为-128

intmax(int8)=127 : int8的最大范围为127

realmax:最大正浮点数(仅用于double,single)

realmin:最小

 (3)函数应用举例

分别求一个三位正整数的个,十,百位

>>m=345
>>m1=rem(m,10)  %%相当于a%b
m1=
  5
>>m2=rem(fix(m/10),10)   %%fix函数取靠近0的整数
m2=
  4
>>m3=fix(m/100)
m3=
  3

 求【1,100】所有素数

MATLB提供了判断n是否为素数的函数isprime(n),当n为素数时返回1,否则返回0.

>>x=1:100;   %%生成1到100间所有整数组成的向量x
>>k=isprime(x);   %%调用isprime函数
>>k1=find(k);   %%调用find函数(找出函数中非0数)
>>p=x(k1)  %%输出全部素数
p=
  1至15列
    2  3  5  7  11  13  17  19  23  29  31  37  41  43  47
  16至25列
    53  59  61  67  71  73  79  83  89  97

三.变量及其操作

1.变量与赋值语句

  变量本质上为内存单元的一个抽象

  在matlab中,变量名是以字母开头,后接字母,数字或下划线的字符序列,最多63个字符。

注意:

(1)变量名区分大小写。

(2)标准函数名以及命令必须用小写字母

2.赋值语句

(1)变量=表达式

(2)表达式

3.预定义变量

  由系统本身定义的变量

        ans是默认赋值变量

        i和j代表虚数单位

        pi代表圆周率

        NaN代表非数(想要裁掉的部分,将其的坐标数据设定为NaN)

 inf:无穷大的缩写

在matlab中nan在不同情况下不同。例:(d)

~:1.代表非  2.代表忽略输出数据

对于(f)中'~'说明取反

4.变量的管理

(1)内存变量的删除与修改

  

a.在工作区按右键进行修改

b. who命令与whos命令

 使用这两个命令,可以显示工作区中的内容

(2)内存变量文件

     用于保存matlab工作区变量的文件叫做内存变量文件,其扩展名为.mat,也叫MAT文件

save命令:创建内存变量文件

load命令:装入内存变量文件

>>save mydata a x  %%把a x存入mydata文件中,下次就可以使用
>>load mydata    %%将mydata文件中的内容存入此次工程中

四. matlab矩阵的表示

1.矩阵的建立

(1)利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的个元素之间用逗号或空格分隔,不同行的元素之间用分号间隔。

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

     A=

            1   2   3

             4   5   6

(2)利用已建立好的矩阵建立更大的矩阵:一个大矩阵可以由已经建立好的小矩阵拼接而成。

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

>>B=[-1,-2,-3;-4,-5,-6;-7,-8,-9];

>>C=[A,B;B,A]

可以用实部矩阵与虚部矩阵构成复数矩阵。

>>B=[1,2,3;4,5,6];

>>C=[6,7,8;9,10,11];

>>A=B+C*i

A=

      1.0000+6.0000i   2.0000+7.0000i ......

向量是矩阵特殊类型

2.冒号表达式

(1)格式

 (2)linspace函数

 3.结构矩阵和单元矩阵

(1)结构矩阵

      格式为:

              结构矩阵元素.成员名=表达式

   >>a(1).x1=10;a(1).x2='liu';a(1).x3=[11,21;34,78];

%%给矩阵a1的第一二三号元素分别赋值

(2)单元矩阵

     建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵用大括号括起来。

>>b={10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];...

14,'cai',[13,890;67,231]}

五.矩阵元素的引用

1.矩阵元素的引用方式

    (1)通过下标来引用矩阵的元素

        A[3,2]表示的是A矩阵第3行第2列的元素。

        >>A(3,2)=200  %%仅改变了该处元素的量

例子:%%不足时,自动补0,使矩阵完整,如例子

     (2)通过序号来引用

序号与下标一一对应的,以m*m矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i

  矩阵元素的序号下标可以利用sub2indin2sub函数实现相互转换

   sub2ind函数:将矩阵中指定元素的行,列下标转换成存储的序号。调用格式为:

D=sub2ind(S,I,J)

D:对应序号

S:行数和列数组成的向量

I:转换矩阵元素的行下标

J:转换矩阵元素的列下标

  int2sub函数:将把矩阵元素的序号转换成对应的下标,其调用格式为:

[I,J]=ind2sub(S,D)

[I,J]:行下标

S:行数和列数组成的向量

D:序号

[3,3]:3行3列矩阵

1,3,5表示其所对应的下标(1,1) (3,1) (2,2)

 利用冒号表达式获得子矩阵

end运算符:表示某一维末尾元素下标

利用空矩阵删除矩阵的元素

空矩阵指没有任何元素的矩阵

>>x=[]

x=

     []

x为空矩阵

改变矩阵的形状

reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵重新排列成m*n的二维矩阵

注意:reshape函数只改变原矩阵的元素个数及其储存顺序

 (3)利用逻辑符号来引用

>> veac = [1 2 3 4 7 8 9 5 6]

veac =

     1     2     3     4     7     8     9     5     6

>> v = [ 1 0 1 1 0 1 0 0 1 ]

v =

     1     0     1     1     0     1     0     0     1

>> veac(v)
数组索引必须为正整数或逻辑值。
 
>> v = logical([ 1 0 1 1 0 1 0 0 1 ])

v =

  1×9 logical 数组

   1   0   1   1   0   1   0   0   1

>> veac(v)

ans =

     1     3     4     8     6

注意正常输入的向量并非逻辑向量,而是double型的因此要将其转化为logical型才可以进行数组索引 

六.MATLAB基本运算

1.算术运算

(1)基本算术运算

    基本算术运算符:+,-,*,/(右除),\(左除)

MATLAB的算术运算是矩阵意义下进行的

单个数据的算术运算只是矩阵运算的特例

a.加减运算

两个矩阵同型,则运算时两矩阵的相应元素相加减。

若两个矩阵不同型,则MATLAB将给出错误信息。

b.乘法运算

矩阵A和B进行乘法运算,要求A的列与B的行一致,称A和B可乘,或A和B矩阵维数或大小相容

维数不同则错误

c.除法运算

在MATLAB中有:右除 '/' 和左除 ‘\’ 

若A矩阵是非奇异方阵,则A/B等效于B*inv(A),B\A等效于inv(A)*B.

对于矩阵来说,右除和左除表示两种不同的除数矩阵和被除数矩阵关系

b.乘方运算

一个矩阵的乘方运算可以表示为A^x,要求A为方阵,x为变量。

(2)点运算

点运算符: .* ; ,/ ; ,\ ; ,^

两个矩阵进行相关运算是指他们对应元素进行相关运算,要求两个矩阵同型

2.关系运算

关系运算符:<,<=,>,>=,==,~=(不等于)

(1)当两个比较量是标量时,直接比较两个数的大小,若不成立则输出0,反之输出1。

(2)当参与比较的量时两个同型的矩阵时,比较是对两个矩阵相同位置的元素按标量关系运算规则逐个进行,最终的关系运算的结果是一个与原矩阵同型的矩阵,它由0和1构成。

(3)当参与比较的是标量和矩阵时,则把矩阵的每一个元素按标量关系运算规则逐个比较,最终的关系运算的结果是一个与原矩阵同型的矩阵,由0或1构成 

 rem函数mod函数

3.逻辑运算

逻辑运算符:&   |   ~(单目运算)

算术运算>逻辑运算

单目运算(运算时仅需要一个变量)>双目运算(运算时需要两个变量)

七.字符串处理

1.字符串的表示

  在matlab中,字符串使用单引号括起来的字符序列

>> xm='Njtech University'
>> xm(1 , 3)   %取字符串1到3的字符
ans =
Njt

若字符串中的字符含有单引号,则该单引号字符要用两个单引号表示。

>> 'I''m a teacher.'
ans =
I'm a teacher

建立多行字符串,形成字符串矩阵。

>> ch=['abcdef';'123456']; %两行的矩阵
>> ch(2,3)
ans=
  3

例子

建立一个字符串向量,然后对该向量做如下处理:

1)取第1~5个字符组成的子字符串。

2)取字符串倒过来重新排列。

3)将字符串中的小写字母变成相应的大写字母,其余字符不变。

4)统计字符串中小写字母个数

>>ch='ABc123d4e56Fg9';
>>subch=ch(1:5)    %取出1~5位的字符
subch=
ABc12
>>revch=ch(end:-1:1)   %输出从最后一位开始,以-1为步长移动,到第一位结束
revch=
9gF65e4d321cBA
>>k=find(ch>='a'&ch<='z')  %查找出小写字母
k=
  3 7 9 13
>>ch(k)=ch(k)-('a'-'A')  %将小写字母加上32,通过ASCII改变该字母为大写
ch=ABC123D4E56FG9
>>length(k)
ans=
   4

2.字符串的操作

(1)字符串的执行

        格式:eval(s)  s为字符串

>>t=pi;
>>m='[t,sint(t),cos(t)]';   %m为字符串
>>y=eval(m)
y=
  3.1416   0.0000   -1.0000

 (2)字符串与数值之间的转换

     1)abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵

     2)char函数可以把ASCII码矩阵转换为字符串矩阵

>>s1='MATLAB';
>>a=abs(s1)
a=
  77 65 84 76 65 66
>> char(a+32)
ans=
matlab

(3)字符串的比较

   字符串的比较有两种方式:利用关系运算符或字符串比较函数。

  1) 关系运算符比较:两个字符串里的每个字符以此比较ASCII值的大小,比较的结果是一个数值向量,向量中的元素要不是1,要么是0.

>>'www0'>='W123'

ans=

    1    1     1    0

2)字符串比较函数用于判断字符串是否相等,有四种比较方式,函数如下:

strcmp(s1, s2):用于比较字符串s1、s2是否相等,如果相等,返回结果1,否则返回0;

strncmp(s1, s2, n):用于比较字符串s1、s2前n个字符是否相等,如果相等,返回结果1,否则返回0;

strcmpi(s1, s2):在忽略字母大小写的前提下,比较字符串s1、s2是否相等,如果相等,返回结果1,否则返回0;

strncmpi(s1, s2, n):在忽略字母大小写的前提下,比较字符串s1、s2前n个字符是否相等,如果相等,返回结果1,否则返回0

s1 = 'matlab';
s2 = 'matlab';
strcmp(s1,s2)
ans=
   1
s3 = 'matlab';
s4 = 'mat';
strncmp(s3,s4,3)
ans=
   1
s5 = 'Matlab';
s6 = 'MATLAB';
strcmpi(s5,s6)
ans=
   1
strncmpi(s5,s6,1)
ans=
   1

(4)字符串的查找与替换

  findstr(s1,s2):返回短字符串在长字符串中的开始位置。

  strrep(s1,s2,s3):将字符串s1中的所有字符串s2替换为字符串s3

>>p=findstr('This is a test!','is')
p=
  3  6
>>p=findstr('is','This is a test!')  %%空格也算一个字符
p=
  3  6
>>result=strrep('This is a test!','test','class')
result=
This is a class!

总结

matlab基础知识的概数

有关matlab---基础知识的更多相关文章

  1. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  4. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

  5. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  6. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  7. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  8. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

  9. ABB-IRB-1200运动学分析MATLAB RVC工具分析+Simulink-Adams联合仿真 - 2

    一、机器人介绍        此处是基于MATLABRVC工具箱,对ABB-IRB-1200型号的微型机械臂进行正逆向运动学分析,并利Simulink工具实现对机械臂进行具有动力学参数的末端轨迹规划仿真,最后根据机械模型设计Simulink-Adams联合仿真。 图1.ABBIRB 1200尺寸参数示意图ABBIRB 1200提供的两种型号广泛适用于各作业,且两者间零部件通用,两种型号的工作范围分别为700 mm 和 900 mm,大有效负载分别为 7 kg 和5 kg。 IRB 1200 能够在狭小空间内能发挥其工作范围与性能优势,具有全新的设计、小型化的体积、高效的性能、易于集成、便捷的接

  10. 【Elasticsearch基础】Elasticsearch索引、文档以及映射操作详解 - 2

    文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就

随机推荐