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

使用simd库实现3x1与1x3向量外积得到3x3矩阵的内置函数咨询

在Swift SIMD库中实现向量外积(3x1 × 1x3 → 3x3矩阵)

Swift的simd库并没有提供直接实现向量外积的内置函数,但可以通过两种简洁方式完成需求:

方法一:手动构造矩阵

直接根据外积的定义,逐个计算矩阵的每个元素:

import simd

let v1 = simd_float3(1, 2, 3)
let v2 = simd_float3(4, 5, 6)

let result = simd_float3x3(
    simd_float3(v1.x * v2.x, v1.x * v2.y, v1.x * v2.z),
    simd_float3(v1.y * v2.x, v1.y * v2.y, v1.y * v2.z),
    simd_float3(v1.z * v2.x, v1.z * v2.y, v1.z * v2.z)
)

方法二:利用SIMD广播特性简化

通过将向量广播为矩阵,再执行逐元素乘法来实现外积,代码更简洁:

import simd

let v1 = simd_float3(1, 2, 3)
let v2 = simd_float3(4, 5, 6)

// 将v1广播为3x3矩阵(每一列都是v1)
let columnMatrix = simd_float3x3(repeating: v1)
// 将v2广播为3x3矩阵(每一行都是v2)
let rowMatrix = simd_float3x3(v2, v2, v2)
// 逐元素乘法等价于外积运算
let result = columnMatrix * rowMatrix

两种方法的底层效率一致,SIMD库会自动对矩阵运算做优化。

内容的提问来源于stack exchange,提问作者Mateusz Stompór

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 01:27:07