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

如何通过起止元组构造CartesianIndices?求简便替代方案

Julia中用起止元组构造CartesianIndices的简便方法

有两种简便方式可以实现需求:

  • 直接用元组推导式生成范围元组
    利用zip将起止元组的对应维度配对,推导生成每个维度的区间后传入CartesianIndices:

    start = (2, 3)
    end_idx = (4, 5)  # 避免和关键字end重名
    ci = CartesianIndices(Tuple(s:e for (s, e) in zip(start, end_idx)))
    

    生成的结果和CartesianIndices((2:4, 3:5))完全一致。

  • 封装辅助函数(适合重复使用)
    如果需要频繁通过起止元组构造CartesianIndices,可以自定义构造函数:

    CartesianIndices(start::Tuple, stop::Tuple) = CartesianIndices(Tuple(s:e for (s,e) in zip(start, stop)))
    

    之后直接调用即可:

    ci = CartesianIndices((2,3), (4,5))
    

注意:起止元组的长度必须一致,否则zip会截断到较短元组的长度,导致维度缺失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:11:58