Swift中的任意矩阵或数组大小

时间:2016-07-09 03:14:58

标签: arrays swift matrix simd accelerate-framework

我熟悉使用NumPy在Python中创建MxN矩阵,例如:

In [1]: import numpy as np

In [2]: np.zeros((10,5))
Out[2]:
array([[ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  0.,  0.]]) 

在Swift中,SIMD可以创建小矩阵并对它们执行操作(见下文),但它似乎仅限于4x4矩阵的最大大小。

import simd

let mat = float2x2([[1,2],[3,4]])
mat[0]*9

有没有办法在Swift中定义任意大小的MxN维度矩阵并对该矩阵执行操作?

1 个答案:

答案 0 :(得分:1)

如果用“matrix”表示“数组数组”,则可以使用以下语法:

var matrix = Array(count: 10, repeatedValue: Array(count: 5, repeatedValue: 0.0))

这会创建一个10 x 5的零矩阵。