MATLAB学习一

1、matlab数值数据

1.1 数值数据类型分类

  • 整形
    无符号整数:无符号8位整数、16、32、64
    取值范围:0000000011111111(02
    8-1)
    带符号整数:带符号8位整数、16、32、64
    取值范围:10000000~01111111(-2
    7~2
    7-1)
  • 浮点型
    single函数:将其他类型的数据转换为单精度型。
    double函数:将其他类型的数据转换为双精度型。
  • 复数型
    复型数据包括实部和虚部两个部分,实部和虚部默认为双精度型,虚数
    单位用i或j来表示。
    real函数:求复数的实部
    imag函数:求复数的虚部
>> 6+5i
ans =
6.0000 + 5.0000i
>> 6+5j
ans =
6.0000 + 5.0000i

1.2 数值数据类型的输出格式
format命令的格式:
format 格式符

>> format long
>> 50/3
ans =
16.666666666666668
>> format
>> 50/3
ans =
16.6667

注意:format命令只影响数据输出格式
,而不影响数据的计算和存储。

1.3 常用的数学函数

  • 函数的调用格式为:
    函数名(函数自变量的值)
>> A=[4,2;3,6]
A =
4 2
3 6
>> B=exp(A)
B =
54.5982 7.3891
20.0855 403.4288

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

  • 常用函数的应用

① 三角函数有以弧度为单位的函数和以角度为单位的函数,如果是以
角度为单位的函数就在函数名后面加“d”,以示区别。

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

② abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。

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

③用于取整的函数有fix、floor、ceil、round。

>> round(4.7)
ans =
5
>> fix(-3.2)
ans =
-3
>> floor(3.6)
ans =
3
>> ceil(-3.8)
ans =
-3

round函数是按照四舍五入的规则来取整。
ceil是向上取整,取大于等于这个数的第一个整数。
floor是向下取整,取小于等于这个数的第一个整数。
fix是固定取靠近0的那个整数,也就是舍去小数取整。

④函数应用举例。
分别求一个三位正整数的个位数字、十位数字和百位数字。

>> m=345;
>> m1=rem(m,10)
m1 =
5
>> m2=rem(fix(m/10),10)
m2 =
4
>> m3=fix(m/100)
m3 =
3

2、变量及其操作

2.1 变量与赋值语句
在MATLAB中,变量名是以字母开头,后接字母、数字或下画线的字符序列,
最多63个字符。
变量名区分字母的大小写。
标准函数名以及命令名一般用小写字母。
赋值语句两种格式:
变量=表达式
表达式

在这里插入图片描述

>> x=sqrt(7)-2i;
>> y=exp(pi/2);
>> z=(5+cosd(47))/(1+abs(x-y))
z =
1.4395

2.2 预定义变量

  • 预定义变量是在MATLAB工作空间中驻留,由系统本身定义的变量。
    ans是默认赋值变量
    i和j代表虚数单位
    pi代表圆周率
    NaN代表非数

  • 变量的管理
    在这里插入图片描述
    在这里插入图片描述

  • 内存变量文件
    用于保存MATLAB工作区变量的文件叫做内存变量文件,其扩展名为.mat
    ,也叫MAT文件。
    save命令:创建内存变量文件。
    load命令:装入内存变量文件。

>> save mydata a x
>> load mydata

3、MATLAB矩阵的表示

3.1 矩阵的建立

  • 利用直接输入法建立矩阵:将矩阵的元素用中括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用逗号或空格分隔,不同行的元素之间用分号分隔。
>> A=[1,2,3;4,5,6;7,8,9]
A =
1 2 3
4 5 6
7 8 9
  • 利用已建好的矩阵建立更大的矩阵:
    一个大矩阵可以由已经建立好的小矩阵拼接而成。
>> 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]
C =
1 2 3 -1 -2 -3
4 5 6 -4 -5 -6
7 8 9 -7 -8 -9
-1 -2 -3 1 2 3
-4 -5 -6 4 5 6
-7 -8 -9 7 8 9
  • 可以用实部矩阵和虚部矩阵构成复数矩阵
>>B=[1,2,3;4,5,6];
>>C=[6,7,8;9,10,11];
>>A=B+i*C
A =
1.0000 + 6.0000i 2.0000 + 7.0000i 3.0000 + 8.0000i
4.0000 + 9.0000i 5.0000 +10.0000i 6.0000 +11.0000i

3.2 冒号表达式
在这里插入图片描述

>> t=0:1:5
t =
0 1 2 3 4 5

省略步长e2,则步长为1。例如,t=0:5与t=0:1:5等价。

在这里插入图片描述

>> x=linspace(0,pi,6)
x =
0 0.6283 1.2566 1.8850 2.5133 3.1416

当n省略时,自动产生100个元素。

3.3 结构矩阵和单元矩阵

  • 结构矩阵
    由结构数据构成的矩阵就是结构矩阵,结构矩阵里的每个元素就是结构数据类型。
    格式为:
    结构矩阵元素.成员名=表达式
>> a(1).x1=10; a(1).x2='liu'; a(1).x3=[11,21;34,78];
>> a(2).x1=12; a(2).x2='wang'; a(2).x3=[34,191;27,578];
>> a(3).x1=14; a(3).x2='cai'; a(3).x3=[13,890;67,231];
  • 单元矩阵
    建立单元矩阵和一般矩阵相似,直接输入就可以了,只是单元矩阵元素用大括号括起来。
>> b= {10,'liu',[11,21;34,78];12,'wang',[34,191;27,578];...
14,'cai',[13,890;67,231]}
b =
[10] 'liu' [2x2 double]
[12] 'wang' [2x2 double]
[14] 'cai' [2x2 double]

4、矩阵元素的引用

4.1 矩阵元素的引用方式

  • 通过下标来引用矩阵的元素
    A(3,2)表示A矩阵第3行第2列的元素
>> A=[1,2,3;4,5,6];
>> A(4,5)=10
A =
1 2 3 0 0
4 5 6 0 0
0 0 0 0 0
0 0 0 0 10

注意:如果给出的行下标或列下标大于原来矩阵的行数和列数,那么MATLAB将自动扩展原来的矩阵,并将扩展后没有赋值的矩阵元素置为0。

  • 通过序号来引用
    在MATLAB中,矩阵元素按列存储,即首先存储矩阵的第一列元素,然后存储第二列元素,…,一直到矩阵的最后一列元素。
    矩阵元素的序号就是矩阵元素在内存中的排列顺序。
>> A=[1,2,3;4,5,6]
A =
1 2 3
4 5 6
>> A(3)
ans =
2

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

  • sub2ind函数:将矩阵中指定元素的行、列下标转换成存储的序号。调用格式为:
    在这里插入图片描述
    sub2ind函数举例。
>> A=[1:3;4:6]
A =
1 2 3
4 5 6
>> D=sub2ind(size(A),[1,2;2,2],[1,1;3,2])
D =
1 2
6 4
  • ind2sub函数:将把矩阵元素的序号转换成对应的下标,其调用格式为:
    在这里插入图片描述
    ind2sub函数举例。
>> [I,J]=ind2sub([3,3],[1,3,5])
I =
1 3 2
J =
1 1 2

4.2 利用冒号表达式获得子矩阵
子矩阵是指由矩阵中的一部分元素构成的矩阵。
A(i,:) 第i行的全部元素
A(:,j) 第j列的全部元素
A(i:i+m,k:k+m) 第i~i+m行内且在第k~k+m列中的所有元素
A(i:i+m,:) 第i~i+m行的全部元素

>> A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15]
A =
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
>> A(1:2,:)
ans =
1 2 3 4 5
6 7 8 9 10
>> A(2:3,1:2:5)
ans =
6 8 10
11 13 15
  • end运算符:表示某一维的末尾元素下标。
>>A=[1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20];
>>A(end,:)
ans =
16 17 18 19 20
>> A([1,4],3:end)
ans =
3 4 5
18 19 20

4.3 利用空矩阵删除矩阵的元素
空矩阵是指没有任何元素的矩阵。

>> x=[]
x =
[]

X是一个空矩阵。

>> A=[1,2,3,0,0;7,0,9,2,6;1,4,-1,1,8]
A =
1 2 3 0 0
7 0 9 2 6
1 4 -1 1 8
>> A(:,[2,4])=[]
A =
1 3 0
7 9 6
1 -1 8

4.4 改变矩阵的形状
reshape(A,m,n):在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵。
注意:reshape函数只是改变原矩阵的行数和列数,但并不改变原矩阵元素个数及其存储顺序。

>> x=[23,45,65,34,65,34,98,45,78,65,43,76];
>> y=reshape(x,3,4)
y
23 34 98 65
45 65 45 43
65 34 78 76

A(: ) :将矩阵A的每一列元素堆叠起来,成为一个列向量。

>> A =[-45,65,71;27,35,91]
A =
-45 65 71
27 35 91
>> B=A(:)
B =
-45
27
65
35
71
91

A(:)等价于reshape(A,6,1)。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值