数学建模社区-数学中国

标题: Matlab中数组元素的引用方法和讨论 [打印本页]

作者: 建不了的模。    时间: 2014-9-17 13:10
标题: Matlab中数组元素的引用方法和讨论
Matlab中数组元素的引用方法和讨论
Matlab beginner,经常会遇到这样的疑问,Matlab矩阵元素引用真灵活,我都看花了眼了!还有数组、矩阵、向量、行列式有什么区别呢?
Matlab中数组元素引用有三种方法:

1.下标法(subscripts)
2.索引法(index)
3.布尔法(Boolean)

在使用这三种方法之前,大家头脑一定要清晰的记住,Matlab中数组元素是按列存储(与Fortran一样),比如说下面的二维数组

A=
     8     1     6
     3     5     7
     4     9     2

Matlab的存储顺序是8,3,4,1,5,9,6,7,2,也就是说先行后列,对于3维数组呢,就是先行后列再页

对应个元素的索引和下标分别为

Element Index Subscripts
8        1      (1,1)
3        2      (2,1)
4        3      (3,1)
1        4      (1,2)
5        5      (2,2)
9        6      (3,2)
6        7      (1,3)
7        8      (2,3)
2        9      (3,3)

从上面的例子中已经很清晰的说明了下标和索引的区别了,也就是说Matlab为没有个元素分配了一个唯一识别的ID(即index)

1.下标法引用

A(ii,jj):其中ii和jj可以是一维向量、标量、“:”号或者“end”

大家对下标估计比较熟悉,由于在C语言中接触过,但是我这里需要强调的是,Matlab的下标是可以多行多列同时引用的,而像C语言等一次只能引用一个,比如

A(2:3,3:-1:1)表示引用数组中的2~3行,3~1列对应的元素
A(:,end)表示引用最后一列元素,“:”表示所有列或行,“end”表示最后一列或列,“end-n”表示倒数第n行或列
A(1,end-1)表示引用第1行倒数第2个元素
A([2 1 3 3],[1 1 2 2 1])表示引用按两个向量引用指定的元素,即A中的第2,1,3,3行和第1,1,2,2,1列对应的元素

至于Matlab中数组元素的引用可以参见http://www.madio.net/thread-223954-1-1.html




作者: harveymao    时间: 2014-9-17 17:35
齐鲁青未了前往拉我去任务
作者: 深V礼    时间: 2014-9-17 18:13
顶顶,发帖多多,收获多多
作者: 数学中国—罂粟    时间: 2014-9-17 21:47
感谢分享,支持分享。
作者: 气壮山河55    时间: 2014-9-22 19:36
让我看看都有什么




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5