トップ «前の日記(2017-11-27) 最新 次の日記(2017-11-29)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|

2017-11-28 [swift][線形代数]3次元ベクトルの加算

Accelerate Frameworkで行列計算を行うのはBLASというAPIを利用することになるのだが、これが古くからの伝統にのっとったもので使いにくい。そこで、Cocoaで扱いやすくするためにla_object_t という型が用意されている。今回はこれの使い方を試してみるのと、まずは基本的な演算に挑戦する。

XとYという3次元ベクトルを用意する。まずは値のバッファ。

let vecXBuf: [Double] = [20.0, 30.0, 40.0]
let vecYBuf: [Double] = [15.0, 10.0, 5.0]

これを3行1列の行列として生成する。

let vecX = la_matrix_from_double_buffer(vecXBuf, 3, 1, 1,la_hint_t(LA_NO_HINT), la_attribute_t(LA_DEFAULT_ATTRIBUTES))
let vecY = la_matrix_from_double_buffer(vecYBuf, 3, 1, 1,la_hint_t(LA_NO_HINT), la_attribute_t(LA_DEFAULT_ATTRIBUTES))

これを足してみる。

et vecZ = la_sum(vecX, vecY)
print(vecZ.matrixDescription)

以下の結果となった。

35.0 
40.0 
45.0 

_ 【Cocoa練習帳】

http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)
Qiita

トップ «前の日記(2017-11-27) 最新 次の日記(2017-11-29)» 編集