MATLAB 板


LINE

上一篇在講怎麼處理 output 這一篇我們來看看怎麼處理 input 圍繞著整個主題, C-style 和 Fortran-style 之間的轉換 是看懂這些程式的關鍵 outline * 辨識有多少個輸入變數 * 讀取輸入變數的內容 ---- 直接從一個 example 開始吧 #include "mex.h" #include <math.h> #include <stdio.h> void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { printf("%d\n", nrhs); } 把檔案取名為 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 函數名稱打進去都看得到使用說明 ---- #include "mex.h" #include <math.h> #include <stdio.h> // Program test for input // usage: // input = zeros(2, 10) // input(1, :) = 1:10 // input(2, :) = 10:-1:1 // mex test2.c // test2(input) // note: type all commands above in Matlab Command Window void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { int i, j, k; int input_dim_x; int input_dim_y; double *in; // pointer to process content of the input double *test; // print some message about input data printf("nrhs: %d\n", nrhs); printf("mxGetM(prhs[0]): %d\n", mxGetM(prhs[0])); printf("mxGetN(prhs[0]): %d\n", mxGetN(prhs[0])); in = mxGetPr(prhs[0]); // get data pointer input_dim_x = mxGetM(prhs[0]); input_dim_y = mxGetN(prhs[0]); // print input content for(i=0; i<input_dim_x; i++) // x for(j=0; j<input_dim_y; j++) // y // notice: data type is "float", you shall use "%f" insted of "%d" printf("%f\n", in[i + j*input_dim_x]); } --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.128.237







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:WOW站內搜尋

TOP