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

如何获取Chapel中多维数组的各维度大小?

获取Chapel数组各维度大小的方案

针对你定义的二维数组:

var arr : [1..10] [1..5] int;

1. 最简方式:使用shape属性

数组的shape属性会直接返回包含各维度大小的元组,完全满足你获取(10,5)的需求:

let dimSizes = arr.shape; // dimSizes = (10,5)

2. 通过Domain维度信息手动获取

如果需要单独获取某一维度的大小,可通过数组的domain属性操作:

  • 第一维度大小:arr.domain.dim(0).size
  • 第二维度大小:arr.domain.dim(1).size

你之前调用arr.domain.dim(1).size报错,大概率是因为Chapel中dim()方法的维度索引从0开始——如果你的代码里误将第一维度用了dim(1),会因索引越界报错;或者存在拼写错误(Chapel是大小写敏感的,size必须小写)。

封装成通用方法

如果需要一个通用的输入数组返回维度大小元组的方法,可以这样写:

proc getDimensionSizes(arr: []?D) {
  return arr.shape;
}

调用getDimensionSizes(arr)即可得到(10,5)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:34:59