matlab---基础知识

目录

前言

一、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基础知识的概数

猜你喜欢

转载自blog.csdn.net/weixin_62436283/article/details/122540161
今日推荐