Matlab compiler: interactive input like INPUT function

6 Ansichten (letzte 30 Tage)
Edward
Edward am 15 Mai 2012
When making compiled programs with the Matlab compiler, is there a way of accepting variables from the user after the program has started running?
I know that variables can be passed in as command line options when executing the program.
But I want to use something like the Matlab INPUT command (this causes an error)
Thanks.
  4 Kommentare
Walter Roberson
Walter Roberson am 16 Mai 2012
If windows, is it a console application or a standalone application that you are producing? It would not surprise me if input() failed on a standalone application.
Edward
Edward am 17 Mai 2012
How do you use standard input (0)?
I have been able to use standard output by doing fwrite(1,etc..)
fread(0,...) doesn't work

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Ahmed Saad
Ahmed Saad am 15 Mai 2012
please tell me how it can be passed in as command line options,i have the same problem
  5 Kommentare
Ahmed Saad
Ahmed Saad am 15 Mai 2012
i did not get it work but thank you for your kind reply
Edward
Edward am 17 Mai 2012
Ahmed - try this:
1) Make the following matlab function as usual:
function boob(a,b)
if ischar(a)
aa=str2num(a);
else
aa=a;
end
if ischar(b)
bb=str2num(b);
else
bb=b;
end
v = aa + bb;
fprintf('The answer is: %i \n',v)
end
2) Compile with the Matlab compiler
3) Run from a (windows) command line:
boob.exe 5 8
4) obtain:
The answer is: 13

Melden Sie sich an, um zu kommentieren.


Edward
Edward am 17 Mai 2012
Thanks Walt
I am compiling a standalone executable, running from the windows command terminal. For example:
function input_test1(a)
fprintf('Input argument is: %s \n',a)
x = input('Please input a letter... ','s');
fprintf('\nYou typed: %s \n\n',x)
end
This compiles and runs fine, up to the point where you input the letter. It then gives the error:
'y' is not recognized as an internal or external command, operable program or batch file.
(where y is the actual letter typed). Am I doing something wrong here?
In Mex files I have found that you can use the input function with mexCallMATLAB, so maybe that is the way to go. Seems inconvenient though.
Not sure how to use standard input.
  4 Kommentare
Kaustubha Govind
Kaustubha Govind am 22 Mai 2012
Ah. That makes sense.
Amro
Amro am 29 Mai 2013
Bearbeitet: Amro am 29 Mai 2013
if you want this to work, you must choose "console application" NOT "windows standalone application" from the deploytool dialog. This is equivalent to compiling as:
mcc -W main -T link:exe myfunc.m

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu MATLAB Compiler finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by