mfile2sci
Matlab M-file to Scilab conversion function
Syntax
mfile2sci() // interactive GUI mfile2sci(M_file_path) mfile2sci(M_file_path, result_path ) mfile2sci(M_file_path, result_path, Recmode) mfile2sci(M_file_path, result_path, Recmode, only_double) mfile2sci(M_file_path, result_path, Recmode, only_double, verbose_mode) mfile2sci(M_file_path, result_path, Recmode, only_double, verbose_mode, prettyprintoutput)
Arguments
To use the default value of some input arguments, just skip their value as in
            mfile2sci(M_file_path, result_path, , , 0).
- M_file_path
- a character string which gives the path of Matlab M-file to convert 
- result_path
- a character string which gives the directory where the result has to be written. Default value is current directory. 
- Recmode
- Boolean flag, used by - translatepaths()function for recursive conversion. Must be %F to convert a single mfile. Default value: %F
- only_double
- Boolean: If %T, mfile2sci() considers that numerical functions and operators (like "+") are used only with numerical data. This excludes for instance instructions like - "ab" + "cd"(that then will be kept as is instead of being converted into- asciimat("ab") + asciimat("cd")).- Default value: %F: All possible conversions are done. 
- verbose_mode
- display information mode - 0 : - no information displayed - 1 : - information is written as comments in resulting SCI-file. - 2 : - information is written as comments in resulting SCI-file and in logfile. - [3] : - information is written as comments in resulting SCI-file, in logfile and displayed in Scilab window. (Default value) 
- prettyprintoutput
- Boolean flag, if %T generated code is beautified. Default value: %F 
Description
M2SCI (and particularly mfile2sci) is Matlab M-file to Scilab function conversion tools. It tries whenever possible to replace call to Matlab functions by the equivalent Scilab primitives and functions.
To convert a Matlab M-file just enter the Scilab instruction:
            mfile2sci(file)
where file is a character string giving the path name of the M-file.
mfile2sci(..) will then generate three files in the same directory:
| <function-name>.sci | The result of the translation of the M-file in Scilab language. | 
| <function-name>.cat | the Scilab help file associated to the function | 
| sci_<function-name>.sci | The Scilab function required to convert the calls to this Matlab M-file in other Matlab M-files. This function may be improved "by hand". This function is only useful for conversion not for use of translated functions. | 
Some functions like eye, ones, size, sum,... behave differently according to the
            dimension of their arguments. When mfile2sci cannot infer dimensions it replaces
            these function call by a call to an emulation function named mtlb_<function_name>.
            For efficiency, these functions may be replaced by the proper scilab equivalent
            instructions.
            To get information about replacement, enter:
            help mtlb_<function_name> in Scilab command window
Some other functions like plot, has no straightforward equivalent in scilab.
            They are also replaced by an emulation function named
            mtlb_<function_name>.
When translation may be incorrect or may be improved mfile2sci adds a comment which begins by "//!" (according to verbose_mode)
|  | mfile2sci()without input argument launches a GUI allowing to
            select a file/directory, and to configure and run the converter:mfile2sci() | 
Examples
// Create a simple M-file rot90m = ["function B = rot90(A,k)" "" "%m2scideclare k|1 1|Double|Real" "" "if ~isa(A, ''double'')" " error(''rot90: Wrong type for input argument #1: Real or complex matrix expected.'');" " return" "end" "[m,n] = size(A);" "if nargin == 1" " k = 1;" "else" " if ~isa(k, ''double'')" " error(''rot90: Wrong type for input argument #2: A real expected.'');" " return" " end" " k = rem(k,4);" " if k < 0" " k = k + 4;" " end" "end" "if k == 1" " A = A.'';" " B = A(n:-1:1,:);" "elseif k == 2" " B = A(m:-1:1,n:-1:1);" "elseif k == 3" " B = A(m:-1:1,:);" " B = B.'';" "else" " B = A;" "end"]; mputl(rot90m, TMPDIR + "/rot90.m") // Convert it to scilab language mfile2sci(TMPDIR + "/rot90.m",TMPDIR) // Show the new code editor(TMPDIR + "/rot90.sci") // Compile it in scilab exec(TMPDIR+'/rot90.sci') // Call & use it m = rand(4,2); rot90(m,1)
See also
- translatepaths — convert a set of Matlab M-files directories to Scilab
History
| Версия | Описание | 
| 6.0.2 | The only_doubleoption is now %F by default. | 
| Report an issue | ||
| << m2scideclare | Code Matlab => Scilab | translatepaths >> |