Converting Matlab function to mex with user defined class object
古いコメントを表示
I need to create a mex file of a function. One of the arguments of the function is the matlab user defined class object. When I try to convert the function to mex, it gives me an error that the function input does not have valid type and user defined class is not supported by coder.type. Is there any solution to this?
5 件のコメント
Adam
2014 年 11 月 3 日
I think you can convert the class to a struct to retain its properties, but lose its functions which are obviously not transferable to mex.
I can't remember off-hand how to do this though so you could probably search for that as fast as I could!
Guillaume
2014 年 11 月 3 日
To convert an object to a struct:
s = struct(obj);
Adam
2014 年 11 月 4 日
Oh yeah...that was too obvious to remember!
Amit
2014 年 11 月 11 日
Guillaume
2014 年 11 月 11 日
Answer to this question, in the answers below
採用された回答
その他の回答 (1 件)
To convert a structure back to an object you can do the following function
function object = propfromstruct(object, s)
for fieldname = fieldnames(s)'
try
o.(fieldname) = s.(fieldname);
catch ex
warning('could not copy field %s due to error %s', fieldname, ex.message);
end
end
end
1 件のコメント
Dalia Sobhy
2017 年 12 月 14 日
編集済み: Dalia Sobhy
2017 年 12 月 14 日
Hello
It is not working
カテゴリ
ヘルプ センター および File Exchange で Algorithm Design Basics についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!