Code generation
4 ビュー (過去 30 日間)
古いコメントを表示
I'm trying to use code generation to have all calculations done in C then passed to Matlab. I'm currently having problems using coder.ceval. It is telling me 'Too many output arguments'.
function y = callfoo %#codegen
y = int32(0);
y = coder.ceval('func', int32(5), int32(5));
end
#include "func.h"
int32_T func(real_T in1, real_T in2)
{
return in1-in2; }
0 件のコメント
回答 (2 件)
Kaustubha Govind
2011 年 6 月 24 日
Perhaps you are attempting to run this code in MATLAB? coder.ceval only applies during code generation. You may need to modify your code to something like:
function y = callfoo %#codegen
y = int32(0);
if isempty(coder.target)
% Executing in MATLAB, call MATLAB equivalent of func
y = 5 - 5;
else
y = coder.ceval('func', 5, 5); %in1 and in2 are double
end
end
0 件のコメント
John Elliott
2011 年 6 月 24 日
In addition to the explicit problem that Kaustubha identified, you have declared you C function to accept real_T arguments, but you are passing int32_T arguments, so you either need to change the C code, or do what Kaustubha did (don't cast the inputs to int32).
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で External Code Integration についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!