罗兰在MATLAB的艺术

把想法变成MATLAB

请注意

罗兰在MATLAB的艺术已经存档,不会被更新。

索引的本质

索引数组允许您的地址部分的元素数组和治疗这个子集作为数组本身,无论是计算或输入其他功能(实质上是右边)或转让(左边)。

内容

MATLAB是n维数组,无限的单维度。拖单维度的过去第二个不显示或报道,例如,大小。没有数组少于两个维度。空数组通用阵列的逻辑延伸,但至少有一个0尺寸大小。的语法[]表示空数组的大小0 x0偶尔,并被视为一个例外(为了向后兼容);它也可以用于特殊期间的任务。

右边

  • 一般索引RHS如果一个是一个数组与N的尺寸大小(s1 s2……sN),然后一个子集可以被索引的数组索引提取谁值介于1和如果为每个维度我= 1,…,N。为维度从标量的右手边,他们的尺寸从结果(例如,大小)和隐式1,除非维度< = 2
=兰德(2、3、2、1,1,1)ndA = ndims (A) sizeA =大小B (A) = (1, 2:3, 2) sizeB =大小(B)
(::1)= 0.2974 0.6932 0.9830 0.0492 0.6501 0.5527 (:,:2)= 0.4001 0.6252 0.3759 0.1988 0.7334 0.0099 ndA = 3 sizeA = 2 3 2 B = 0.6252 - 0.3759 sizeB = 1 2
  • 索引与指数大于维度如果我> N当索引,索引> N必须是1,否则将会有一个错误。
(1、2、1、1)
ans = 0.6932
试一试(1,1,1,3)s = lasterror ();s.message结束
ans =错误使用= = > evalin指数超过矩阵维度。
  • 用更少的指数比维索引如果最终尺寸我< N,右手维度崩溃到成品尺寸。例如,如果=兰德(1、3、4、1、7)我们的类型(1、2、12)好像,然后我们得到了元素一个被改变了(1、3、28)然后索引。28代表产品最终的成品尺寸的大小和其他“落后”的解决。
一个= 1:(3 * 4 * 7);一个=重塑(1,1,3,4日,7);sizeA =大小(一个)
sizeA = 1 3 4 1 7

显示中间块和索引到一个值。

(:,:14)(1、2、12)
ans (:: 1) = 28 29 30 ans (:,: 2) = 31 32 33 ans (:,:, 3) = 34 35 36 ans (:,:, 4) = 37 38 39 ans (:,:, 5) = 40 41 42 ans = 35
  • 索引和:结肠选择特定维度的所有元素。这相当于使用1:结束对感兴趣的维度。
=魔法(3)B = C (:, 2) = (1:2,:)
1 = 8 6 3 5 7 4 9 2 B = 1 5 9 C = 8 1 6 3 5 7
  • 索引和结束取代结束与相关大小(暗)在使用索引表达式的值。你可以计算结束
V = 1:3;V (end-1) = 7
V = 1 7 3
  • 索引与colon-expressionn1: n2n1:一步:n2选择特定的条目指定的维度和相当于取代指数(n1 n1 + 1……n2)[n1 n1 + n1 + 2 *步一步……n1 +一步*修复((n2-n1) /步骤)
=魔法(5)(1:3,1:2:5)
= 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19日21日3 11 18 25 2 9 ans = 17 1 15 23 7 16 4 13 22
  • 与一个数组索引C = A (B)生产产量的大小B除非两一个B是向量。
一个= 1:10 B = [1 3;2 4]C = A (B)
一个= 1 2 3 4 5 6 7 8 9 10 B = 1 2 3 4 C = 1 2 3 4

当两个一个B是向量,元素的数量C元素的数量吗B和定位一个

行= 1:4列=(1:4)的行(列)列(行)
行= 1 2 3 4列= 1 2 3 4 = 1 2 3 4岁= 1 2 3 4
  • 与几个数组索引C = (B1, B2,…, Bk)的大小C(元素个数(B1),元素个数(B2),…元素个数(Bk))
一个=魔法(6)ind1 = [1 - 4] ind2 = [1 2;2 6)C = (ind1 ind2)
= 35 1 6 26日19日24日3 32 7 21 23日25日31日9 2 22日27日20 8 28 33 17 10 15 30 5 34 12 14 16 4 36 29日13 18 11 ind1 = 1 4 ind2 = 1 2 2 6 C = 35 1 1 24 8 28日28日15
  • 逻辑索引由一个逻辑索引矩阵B相当于索引的列向量B (:)
=魔法(3)B =[真正的错误;真的真的]C = (B)持续地=(:)的C =持续地(B)
1 = 8 6 3 5 7 4 9 2 B = 1 0 1 1 C = 8 3 1持续地= 8 3 4 5 1 9 6 7 2 C = 8 3 1

左手边

  • 一般规则为韩一般来说,需要一个标量或右边和左边一样的大小(除了在左边(:)如下提到的)。否则,您将看到一个错误。
=魔法(3)(:,2)= 17 (1):)= 2:2:6
6 = 8 1 2 3 5 7 4 9 = 8 17 2 6 3 17 7 4 17 = 2 4 6 3 17 7 4 17 2
  • 数组的增长使用数组索引数组的边界生长外,从右边追加指定的值。没有显式值,左边的值设置为0。
一个= 1:3 (3 (2 - 4))= 17
= 1 2 3 = 1 2 3 0 0 0 0 0 0 17 0 17
  • 数据类型转换如果已经存在,左边右边的值指定的数据类型转换为左边如果可能的话。否则,操作会导致错误。
=单(魔法(2)(A)(1) = 17类
= 1 2 3 4 = 17日3 4 2 ans =单身
  • 删除如果右边是明确的[],然后左边的元素被删除。这是人们如何删除点缺失的信息,例如。
=魔法(3)(3 [1]:)= []
6 = 8 1 2 3 5 7 4 9 = 3 5 7
  • :保持形状(:)=表达式保留的原始形状/尺寸/数据类型一个,无论右边的形状。
= 1:9;(,)=魔法(3)
3 = 8 4 1 5 9 6 7 2

引用

下面是一些相关文档和其他文章引用索引。

请让我知道如果它是有用的在一个地方所有的索引信息。


使用MATLAB®7.2发表


评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。