bug 11022: -append can be use in save and export_to_hdf5 functions at any position...
[scilab.git] / scilab / modules / m2sci / macros / matfile2sci.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) ???? - INRIA - Serge STEER 
3 // Copyright (C) 2009 - DIGITEO - Vincent COUVERT
4 // 
5 // This file must be used under the terms of the CeCILL.
6 // This source file is licensed as described in the file COPYING, which
7 // you should have received as part of this distribution.  The terms
8 // are also available at
9 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10
11 function matfile2sci(mat_file_path,result_file_path)
12 // Translate a Matlab MAT file into a Scilab file
13 //
14 // mat_file_path : path of the Matlab MAT file
15 // result_file_path : path of the generated Scilab file
16 //
17 //This function has been developped following the "MAT-File Format" description:
18 //www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf
19
20 if ~with_module("matio") then
21   error(msprintf(gettext("%s: %s module is not installed.\n"), "matfile2sci", "matio"));
22 end
23
24 [lhs,rhs]=argn(0)
25 if rhs<>2 then
26     error(msprintf(gettext("%s: Wrong number of input arguments: %d expected.\n"),"matfile2sci",2)),
27 end
28
29 //--file opening
30 fdi=matfile_open(pathconvert(mat_file_path, %F, %T), "r");
31 fdo=pathconvert(result_file_path, %F, %T);
32
33 //-- Read first variable
34 ierr = execstr("[Name, Matrix, Class] = matfile_varreadnext(fdi);", "errcatch");
35 ierrsave = 0;
36
37 //--loop on the stored variables
38 while Name<>"" & ierr==0 & ierrsave==0
39   ierrsave = execstr(Name + " = Matrix; save(fdo, ""-append"", """+Name+""")", "errcatch")
40   if ierrsave==0 then
41     //-- Read next variable
42     ierr = execstr("[Name, Matrix, Class] = matfile_varreadnext(fdi);", "errcatch");
43   end
44 end
45
46 //--file closing
47 matfile_close(fdi);
48 endfunction
49