matlab提取矩阵的135行 246列,在MATLAB中从2D矩阵中提取给定每行列索引的2D矩阵的元素...

我们可以得到那些索引的线性索引等价,然后简单地索引到输入数组就可以得到所需的输出.现在,为了获得这些线性索引,我们将使用bsxfun进行与索引计算相关的数学计算,这基本上涉及缩放和偏移.

使用列索引的2D数组进行索引

对于列索引的2D数组,我们将 –

function out = take_cols(a, col_idx)

n = size(a,1);

lidx = bsxfun(@plus,(col_idx-1)*n,(1:n).');

out = a(lidx);

样品运行 –

>> a

a =

39 83 39 48 36

58 74 20 19 50

69 97 65 34 57

47 58 80 24 51

>> col_idx

col_idx =

2 4

3 5

1 4

2 5

>> take_cols(a, col_idx)

ans =

83 48

20 50

69 34

58 51

使用2D索引行索引进行索引

对于行索引的2D数组,它将是 –

function out = take_rows(a, row_idx)

[m,n] = size(a);

lidx = bsxfun(@plus,row_idx, (0:n-1)*m);

out = a(lidx);

样品运行 –

>> a

a =

39 83 39 48 36

58 74 20 19 50

69 97 65 34 57

47 58 80 24 51

>> row_idx

row_idx =

3 2 3 1 2

4 3 4 2 4

>> take_rows(a, row_idx)

ans =

69 74 65 48 50

47 97 80 19 51

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值