索引超出矩阵维度_Matlab-矩阵A,矩阵B,A(B)什么含义?

问题:矩阵A,矩阵B,A(B)什么含义

当矩阵B为double

whos b
  Name      Size            Bytes  Class     Attributes

  b         2x2                32  double          

实验如下:

A 

结果:

>> A(b)

ans =

     1     2
     3     1
A =

     1     1     1
     1     2     3
     1     3     6
b =

     4     5
     6     7

总的来说,这是一个不怎么规范的写法,官方的解释懒得去找了。

就结果而言,会得到一个与b同型的矩阵,这个矩阵中的元素来自A,具体的对应规则为A(b(i,j)),1<=i<=size(b,1),1<=j<=size(b,2).

就上例而言:b是一个 2 by 2 的矩阵,所以A(b)也是一个 2 by 2 的矩阵。

ans(1,1)=A(b(1,1))=A(4)=1,这是因为matlab中的数组元素在内存中的索引是按照列来排序的,如果把A向量化,会的到这样的结果

A(:)=1 1 1 1 2 3 1 3 6

查第四个数正好是1,同理

  • ans(1,2)=A(b(1,2))=A(5)=2,
  • ans(2,1)=A(b(2,1))=A(6)=3,
  • ans(2,2)=A(b(2,2))=A(7)=1,

如果有

c 

那么结果应该为

ans =

     3     2
     1     6

当矩阵c为logical时

whos c
  Name      Size            Bytes  Class      Attributes

  c         2x2                 4  logical       

如下:

c = (A > 2);
c(1,1) = 1;
A(c)
c =

     1     0     0
     0     0     1
     0     1     1

A(C) =

     1
     3
     3
     6

结论:

  • 没看出来有啥用?
  • 要想不出错,一个前提是size(b)的每一个维度都应该小于size(A),
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值