确定Swift中多维数组的大小

时间:2018-01-13 10:58:36

标签: arrays swift matrix count

我是Swift的新手,正在努力研究如何确定多维数组的大小。

我可以对单个数组使用count函数,但是当我创建一个矩阵/多维数组时,count调用的输出只给出一个值。

var a = [[1,2,3],[3,4,5]]
var c: Int
c = a.count
print(c)

2

以上矩阵' a'显然有2行3列,有没有办法输出这个正确的大小。

在Matlab中,这是一个简单的任务,包含以下代码行,

a = [1,2,3;3,4,5]
size(a)
ans =
2 3

Swift中有一个简单的等价物

我看起来很高和很低的解决方案,似乎无法找到我正在追求的。

谢谢你 - HB

2 个答案:

答案 0 :(得分:5)

因为swift中的2D数组可以具有不同长度的子数组。没有“矩阵”类型。

let arr = [
    [1,2,3,4,5],
    [1,2,3],
    [2,3,4,5],
]

所以“行”和“列”的概念不存在。只有count

如果要计算子阵列中的所有元素(在上面的例子中为12),你可以对它进行平面映射,然后count

arr.flatMap { $0 }.count

如果您确定阵列是矩阵,则可以执行以下操作:

let rows = arr.count
let columns = arr[0].count // 0 is an arbitrary value

答案 1 :(得分:0)

您必须询问数组特定行的大小才能获得列大小:

print("\(a.count) \(a[0].count)")