文章總列表

用 Matlab 寫 MEX 函數加速 vol.3

上一篇在講怎麼處理 output
這一篇我們來看看怎麼處理 input

圍繞著整個主題, C-style 和 Fortran-style 之間的轉換
是看懂這些程式的關鍵

outline

* 辨識有多少個輸入變數
* 讀取輸入變數的內容


----


直接從一個 example 開始吧




把檔案取名為 test_input.c
編譯

mex test_input.c

並且執行以下指令, 觀察結果

test_input(1)
test_input(1, 2, 3)
test_input(1, 2, 3, 4, 6)

這個做完以後, 應該可以看出 nrhs 這個變數的意義
先用這個簡單的例子當做開場


----


接下來, 設計一組簡單的輸入...

input = zeros(2, 5)
input(1, :) = 1:5
input(2, :) = 5:-1:1

如此 input = [ 1 2 3 4 5
5 4 3 2 1]

我想設計一個 MEX-function
讀取並印出第一個 row, 其次是第二個 row

注意在下面的程式裡
mxGetM() 取得 Matrix 有幾個 row
mxGetN() 取得 Matrix 有幾個 column

程式不困難, 有任何問題打 helpwin 配上 search
函數名稱打進去都看得到使用說明


----


留言

這個網誌中的熱門文章

幼犬書桌椅選擇心得 升降桌 兒童桌椅

STM32 UART + DMA,使用HAL實作TX/RX,以及不定長度接收

CANON G3000 廢墨瓶改裝