You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Julia数组索引集缩写:如何用简洁方式截取匹配尺寸的子数组?

Julia中按另一个矩阵尺寸截取子矩阵的简洁写法

针对你提出的需求,有两种简洁的写法可以替代A[1:size(B)[1],1:size(B)[2]]:

方法1:使用axes(B)配合展开操作符

axes(B)会返回矩阵B各维度的索引范围,对于2×2的B,它返回(1:2, 1:2)。通过展开操作符...将这个元组拆分为独立的索引参数,直接用于A的索引:

A[axes(B)...]

示例验证:

julia> A = ones(Float64,3,3)
3×3 Matrix{Float64}:
 1.0  1.0  1.0
 1.0  1.0  1.0
 1.0  1.0  1.0

julia> B = ones(Float64,2,2)
2×2 Matrix{Float64}:
 1.0  1.0
 1.0  1.0

julia> A[axes(B)...]
2×2 Matrix{Float64}:
 1.0  1.0
 1.0  1.0

方法2:直接指定维度的size调用

相比size(B)[1],更简洁的写法是用size(B, dim)直接获取第dim维的尺寸,代码如下:

A[1:size(B,1), 1:size(B,2)]

这种写法更直观,明确指定要获取B的第1维和第2维尺寸,示例运行结果和方法1一致。


内容的提问来源于stack exchange,提问作者phinz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 05:22:04