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.

 Akzeptierte Antwort

Guillaume
Guillaume am 1 Mär. 2016
Bearbeitet: Guillaume am 1 Mär. 2016

1 Stimme

setdatatype(pointer, 'uint16Ptr', n); %assuming the pointer points to an array of n uint16
should work.

2 Kommentare

Kev Chen
Kev Chen am 2 Mär. 2016
Thanks you .
I never thought that...
It works.
vishal sp
vishal sp am 6 Mai 2022
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);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by