how to change datatype of libpointer

7 ビュー (過去 30 日間)
Kev Chen
Kev Chen 2016 年 3 月 1 日
コメント済み: vishal sp 2022 年 5 月 6 日
Hi , I am trying to use Matlab and shared library.
If I have a C function which is like below
void * foo(int n);
It's just like that we get a void type pointer containing n int data , returned from foo .
In C , we can change void type to int or double easily.
But how to change type in Matlab ?
I tried
pointer = calllib(lib,'foo',1000);
pointer.datatype = 'uint16Ptr'; %Changing the 'DataType' property of lib.pointer is not allowed.

採用された回答

Guillaume
Guillaume 2016 年 3 月 1 日
編集済み: Guillaume 2016 年 3 月 1 日
setdatatype(pointer, 'uint16Ptr', n); %assuming the pointer points to an array of n uint16
should work.
  2 件のコメント
Kev Chen
Kev Chen 2016 年 3 月 2 日
Thanks you .
I never thought that...
It works.
vishal sp
vishal sp 2022 年 5 月 6 日
iam getting error for this, Check for missing argument or incorrect argument data type in call to
function 'setdatatype'.
Error in getLineColour (line 14)
setdatatype(image,'uint8Ptr',3);

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCall C from MATLAB についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by