Matlab变量及其操作

变量及其操作

变量与赋值语句

变量本质上讲是内存单元

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

matlab中变量名区分大小写

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

赋值语句两种形式

变量=表达式
表达式

预定义变量

它是系统本身定义的变量 ans是默认复制变量 i,j代表虚数单位 pi代表圆周率 NaN代表非数
注意:i经常被定义为循环变量,那么这时i就不再是预定义变量了

变量的管理

(1)内存变量的删除与修改
who 与 whos 查看变量信息
(2)内存变量文件(用于保存MATLAB工作区变量文件,其扩展名.mat)
save 创建内存变量文件
load 装入内存变量文件

save mydata a x
load mydata

矩阵的建立

(1)直接输入 A=[1,2,3;4,5,6]
(2)拼接 B=[-1,-2,-3;-4,-5,-6] C=[A,B;B,A]

A=[1,2;4,5]

A =

 1     2
 4     5

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

B =

-1    -2    -3
-4    -5    -6

C=[A,B;B,A]

C =

 1     2    -1    -2    -3
 4     5    -4    -5    -6
-1    -2    -3     1     2
-4    -5    -6     4     5

还可以构成复数矩阵

A=[1,2,3;4,5,6]

A =

 1     2     3
 4     5     6

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

B =

-1    -2    -3
-4    -5    -6

D=A+i*B

D =

1.0000 - 1.0000i 2.0000 - 2.0000i 3.0000 - 3.0000i
4.0000 - 4.0000i 5.0000 - 5.0000i 6.0000 - 6.0000i

冒号表达式

格式: e1:e2:e3 初始值:步长:终止值 产生向量
linspace函数也能产生行向量 linspace(a,b,n) a第一个元素,b最后一个元素,当n省略时自动产生100个元素

结构矩阵和单元矩阵

(1)结构矩阵 一个数据往往包含不同的类型
格式为: 结构矩阵元素.成员名=表达式
例如建立含有三个元素的结构矩阵a

a(1).x1=10;a(1).x2=‘liu’;a(1).x3=[11,21,34,78];
a(2).x1=10;a(2).x2=‘wang’;a(2).x3=[1,2,3,8];
a(3).x1=13;a(3).x2=‘xiao’;a(3).x3=[13,23,34,73];
[11,21,34,78] ‘liu’ 10
[1,2,3,8] ‘wang’ 10
[13,23,34,73] ‘xiao’ 13

  • (2)单元矩阵 和一般矩阵相似,直接输入就可以了,只是单元矩阵元素用大括号括起来 元素可以是不同类型的变量

b={10,‘liu’,[11,21,34,78];10,‘wang’,[1,2,3,8];13,‘xiao’,[13,23,34,73]}

b =

3×3 cell 数组

[10]    'liu'         [1×4 double]
[10]    'wang'    [1×4 double]
[13]    'xiao'      [1×4 double]

矩阵元素的引用方式

(1)通过下标来赋值,不够会拓展

A=[1,2,3;4,5,6];
A(4,5)=12

A =

 1     2     3     0     0
 4     5     6     0     0
 0     0     0     0     0
 0     0     0     0    12

(2)通过序号来引用

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和ind2sub函数来实现相互转换。
sub2ind函数 将下标转换成序号。

D=sub2ind(size(A),[1,2;2 ,2],[1,1;3 ,2])

D =

 **1**     *2*
 ~~6~~      4
 以上同种符号一一对应

[I,J]=ind2sub([矩阵的行数,列数],[序号1,序号2,序号3])
ind2sub函数 序号换下标 此处A为两行三列的矩阵

[i,j]=ind2sub([2,3],2)

i =

 2

j =

 1

利用冒号表示子向量

A(i,:)
A(:,j)
A(i:i+m,k:k+m)
A(i:i+m,:)不难理解
end运算符 表示某一位的末尾元素的下标

A=[11:15;1:5;6:10;16:20]
A(end,:)
A([1,4],3:end)

A =

    11    12    13    14    15
     1     2     3     4     5
     6     7     8     9    10
    16    17    18    19    20


ans =

    16    17    18    19    20


ans =

    13    14    15
    18    19    20

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

空矩阵是☞没有任何元素的矩阵

A=[11:15;1:5;6:10;16:20]
A(:,[2,4])=[]

A =

    11    12    13    14    15
     1     2     3     4     5
     6     7     8     9    10
    16    17    18    19    20


A =

    11    13    15
     1     3     5
     6     8    10
    16    18    20

改变矩阵的形状
reshaoe(A,m,n) 不改变顺序,只把矩阵重新排布成m×n的二维矩阵

clear
A=[11:15;1:5;6:10;16:20]
reshape(A,5,4)


A =

    11    12    13    14    15
     1     2     3     4     5
     6     7     8     9    10
    16    17    18    19    20


ans =

    11     2     8    19
     1     7    18    15
     6    17    14     5
    16    13     4    10
    12     3     9    20

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

>> A(:)

ans =

    11
     1
     6
    16
    12
     2
     7
    17
    13
     3
     8
    18
    14
     4
     9
    19
    15
     5
    10
    20
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值