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

Swift中如何获取多维数组的尺寸?求Matlab size等效实现

嗨~作为Swift新手碰到这个问题太正常啦!毕竟Swift里的“多维数组”和Matlab里的矩阵本质不太一样,咱们一步步来解决:

首先得明白:Swift中的[[Int]]其实是数组的数组,外层数组的每个元素都是一个子数组(也就是你的“行”)。所以a.count返回的是外层数组的元素个数,也就是你说的行数2,完全没问题。

那列数怎么拿呢?如果你的矩阵是规则的(每一行的元素个数都一样),直接取第一个子数组的count就可以啦,不过要注意处理数组为空的情况,避免可选值报错:

var a = [[1,2,3],[3,4,5]]
let rows = a.count
// 用?? 0处理数组为空或者第一个子数组为空的情况
let columns = a.first?.count ?? 0
print("\(rows) \(columns)") // 输出:2 3

如果你想像Matlab那样用一个size()方法直接获取,完全可以自己给数组写个扩展,这样用起来更方便:

// 给元素是Collection类型的数组扩展size方法
extension Array where Element: Collection {
    func size() -> (rows: Int, columns: Int) {
        let rows = self.count
        let columns = self.first?.count ?? 0
        return (rows, columns)
    }
}

// 使用起来就像Matlab一样简洁啦
var a = [[1,2,3],[3,4,5]]
let matrixSize = a.size()
print("\(matrixSize.rows) \(matrixSize.columns)") // 输出:2 3

⚠️ 小提醒:如果你的“多维数组”是不规则的(比如有的行元素多有的行少),这个方法只会取第一行的列数,这时候你可能需要额外处理这种情况,但如果是规则矩阵的话,这个实现完全够用~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:04:54