数字图像处理 matlab 笔记,数字图像处理(MATLAB版)---读书笔记二

一切都是数组

数组有一维,一般称之为向量;二维数组也就是矩阵 ...

一、一维向量

1. 一维向量的定义

如下产生一个列向量u

>> u= [1;2;3;4;5]  //用分号分隔

u =

1

2

3

4

5

以下的几种方法等价的产生一个行向量v

>> v = [1,2,3,4,5]

v =

1     2     3     4     5

>> v = [1 2 3 4 5]

v =

1     2     3     4     5

>> v = [1:5]

v =

1     2     3     4     5

数组元素从1开始计数,最后一个可用end表示

>> v(3)

ans =

3

>> v(end)

ans =

5

2.数组转置  " .' "

>> v.'

ans =

1

2

3

4

5

当v定义好以后,将其规范化为行向量的命令:

>> v(1:end)

ans =

1     2     3     4     5

当v定义好以后,将其规范化为列向量的命令:

>> v(:)

ans =

1

2

3

4

5

3.冒号的用法

冒号“:”意味着等步长分隔,如

>> v = [1:5]         //默认步长为1

v =

1     2     3     4     5

对比下面左右两个定义

>> w = [ 1 : 7]                                            >> w = [ 1 : 2 : 7]     //指定步长为2

w =                                                             w =

1     2     3     4     5     6     7                       1     3     5     7

左边可以看作是当步长为1时,省略了对其的书写。如果要加入步长,注意其加入的位置!

>> v(1 : 2 : end)       //意味着按步长为2, 输出v中的第一个到最后一个元素

ans =

1     3     5

顺便提一个函数:linspace(a , b , n)

其中a表示第一个元素,b为最后一个元素,一共n个元素。那么步长由系统自动计算生成。

>> linspace(1 , 20 , 5)

ans =

1.0000    5.7500   10.5000   15.2500   20.0000

二、矩阵

1.矩阵定义等

定义矩阵和定义向量大同小异,定义某矩阵A[3*3]:

>> A = [1 2 3 ; 4 5 6 ; 7 8 9]       //不同的行用分号分隔,如同定义列向量一样

A =

1     2     3

4     5     6

7     8     9

>> A(2,2)

ans =

5

**2.取某行或列

取矩阵A的第2行 和 第3列,注意冒号的奇妙用法:

>> R2 = A(2 , :)

R2 =

4     5     6

>> C3 = A( : , 3)

C3 =

3

6

9

R2 = A(2 , :)相当于R2 = A(2 , 1:3),分号的作用有点类似通配符“*”

***3.使用向量作为矩阵的索引

>> E = A([1 2] , [3 1])

E =

3     1

6     4

这里

E(1,1)=A(1,3);  E(1,2)=A(1,1);

E(2,1)=A(2,3);  E(2,2)=A(2,1).

4.矩阵寻址A(D),D为一逻辑数组(由0/1组成),输出结果为一列向量,如下

>> D=logical([1 1 1; 0 1 1; 0 0 0])

D =

1     1     1

0     1     1

0     0     0

>> A(D)

ans =

1

2

5

3

6

5.用冒号表示数组的全部元素

之前就见识过通过冒号来完成取矩阵一行/列的操作,即冒号可以表示某向量中的所有元素。对于矩阵而言,其作用是一样的:

>> v1=A(:)         //注意,结果并不是123456789

v1 =

1

4

7

2

5

8

3

6

9

事实上,MATLAB将每个数组都作为列向量来存储,不管它实际维数是多少。

在二维的矩阵中,数据的实际存储顺序为:将每列依次按顺序首尾相连成一个总的列向量,即上面所示的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值