arrays - 展平 simd_float4x4 矩阵的优雅方法
问题描述
我想将一个simd_float4x4
或一个simd_float3x3
矩阵展平为一个浮点元素数组。
对于我会使用的常规数组
let arr = [[1,2,3],[4,5,6],[7,8,9]]
print(arr.flatMap { $0 })
我怎样才能优雅地为 a simd_float4x4
or结构做到这一点?simd_float3x3
我目前正在使用这个,
extension simd_float3x3 {
var array: [Float] {
return [columns.0.x, columns.0.y, columns.0.z,
columns.1.x, columns.1.y, columns.1.z,
columns.2.x, columns.2.y, columns.2.z]
}
}
let arr = simd_float3x3.init()
print(arr.array.compactMap({$0}))
解决方案
优雅在旁观者的眼中。到目前为止,我想出了这个:
let s = simd_float3x3(simd_float3(1, 2, 3), simd_float3(4, 5, 6), simd_float3(7, 8, 9))
let y = (0..<3).flatMap { x in (0..<3).map { y in s[x][y] } }
print(y)
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
推荐阅读
- nuxt.js - 将 Nuxt 中的索引设置到其他位置
- firebase - Firebase 中“session_start”的“session_engaged”事件属性是什么?
- ruby-on-rails - 将 Postgresql 添加到现有 Rails 项目
- java - 如何从不同的活动中获取 RadioGroup 值
- django - 为什么在 Django 模型图像中,Media.url 返回一个空字符串,而不是图像链接?
- python-3.x - “Flask Sqlite 数据库未显示查询”
- ios - 升级到 Xcode 版本 10.2 (10E125) 后,使用 range.upperBound.samePosition(in: utf16) 时出现致命错误
- android - Resource.Raw 不包含 Json 文件的定义
- apache-spark - 如何根据动态列比较pyspark中的2个数据框
- javascript - 在客户端机器中加载文件/文件夹