Matlab to C code conversion issue
6 次查看(过去 30 天)
显示 更早的评论
function final_seq=myapp(x,y,a,b,i,j,z,k,p,m,new,xt,J,ix,X1,final_seq)
x=input(' Enter fast clock ratio '); %fast clock
y=input(' Enter slow clock ratio '); %slow clock
................
end
when i try to compile the above code in matlab coder,following error pops up:
" input is not supported for code generation"
What is the work around this issues.Please help its urgent
0 个评论
采纳的回答
Mukund Sankaran
2019-8-14
There is unfortunately no code generation support for the input function as of MATLAB R2019a. We've made an internal note of your request so we can look at lifting that limitation in the future.
In the interim, here is a potential workaround -
function y = foo
y = input_codegen('Enter a number: ');
fprintf('Read: %s\n',y);
end
function resp = input_codegen(prompt)
%#codegen
coder.extrinsic('input');
if coder.target('MEX') || coder.target('MATLAB') || coder.target('Sfun')
resp = input(prompt, 's');
else
coder.cinclude('<stdio.h>');
fprintf('%s',prompt);
cresp = char(zeros(1,1024));
coder.ceval('fgets',coder.ref(cresp(1)), 1023, coder.opaque('FILE*','stdin'));
% Call strlen in C and trim output
slen = int32(1);
slen = coder.ceval('strlen',coder.rref(cresp(1)));
resp = cresp(1:slen);
end
end
0 个评论
更多回答(1 个)
Steven Lord
2019-8-14
function final_seq=myapp(x,y,a,b,i,j,z,k,p,m,new,xt,J,ix,X1,final_seq)
x=input(' Enter fast clock ratio '); %fast clock
y=input(' Enter slow clock ratio '); %slow clock
x and y are the first two inputs to your function, but your input calls are throwing away those first two inputs to replace them with the user-entered data. Why not just have the code that calls your generated function pass x and y into your function directly and eliminate input?
0 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!