Matlab to C code conversion issue

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

 Accepted Answer

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

More Answers (1)

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?

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!