首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab中的花式阵列访问

Matlab中的花式阵列访问
EN

Stack Overflow用户
提问于 2014-03-19 11:55:17
回答 1查看 253关注 0票数 1

在Python中,可以使用索引数组,如(摘自本教程):

代码语言:javascript
运行
复制
data = array([[ 0,  1,  2,  3],
              [ 4,  5,  6,  7],
              [ 8,  9, 10, 11]])
i = array( [ [0,1],         # indices for the first dim of data
             [1,2] ] )
j = array( [ [2,1],         # indices for the second dim
             [3,3] ] )

现在,调用

代码语言:javascript
运行
复制
data[i,j]                                 

返回数组。

代码语言:javascript
运行
复制
array([[ 2,  5],
       [ 7, 11]])

我怎么能在Matlab中得到同样的信息呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-19 11:59:09

我认为您必须使用线性索引,这将从sub2ind函数中得到如下所示:

代码语言:javascript
运行
复制
ind = sub2ind(size(data), I,J)

示例:

代码语言:javascript
运行
复制
data =[ 0,  1,  2,  3
        4,  5,  6,  7
        8,  9, 10, 11]

i = [0,1;
     1,2];

j = [2,1;
     3,3]

ind = sub2ind(size(data), i+1,j+1);
data(ind)

ans =

     2     5
     7    11

请注意,我使用了i+1j+1,这是因为与0开始索引不同,Matlab从1开始索引。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22505041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档