Code generation
1 次查看(过去 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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!