[R] Matlab import
Henrik Bengtsson
hb at stat.berkeley.edu
Fri Apr 20 01:59:20 CEST 2007
On 4/19/07, Spencer Graves <spencer.graves at pdf.com> wrote:
> Have you tried 'getVariable' from Matlab? I also recently failed
> to get 'readMat' to work for me -- probably because I hadn't saved the
> files using the options Henrik suggested below.
>
> Fortunately, I was able to get something like the following to work:
>
> # Start Matlab server
> Matlab$startServer()
>
> # Create a Matlab client object used to communicate with Matlab
> matlab <- Matlab()
>
> # Get max info for diagnosis
> setVerbose(matlab, -2)
>
> # Confirm that 'matlab' is running
> open(matlab)
>
> # Load the raw input data in matFile.mat into Matlab
> evaluate(matlab, "load matFile")
>
> # Transfer it to R.
> varInMatfile <- getVariable(matlab, "variableInMatFile")
>
> # Done
> close(matlab)
>
>
> This was with Matlab 7.3.0 (R2006b) and the following versions of
> everything else:
Yes, the MatlabServer script on the Matlab side automatically detects
the version of Matlab and saves/transfers data using option "-V6" if
running Matlab v7 and higher. So, if this works I'm sure readMat()
will work is you save with "-V6".
/Henrik
>
> sessionInfo()
> R version 2.4.1 (2006-12-18)
> i386-pc-mingw32
>
> locale:
> LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
> States.1252;LC_MONETARY=English_United
> States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252
>
> attached base packages:
> [1] "stats" "graphics" "grDevices" "utils" "datasets" "methods"
> [7] "base"
>
> other attached packages:
> R.matlab R.oo
> "1.1.3" "1.2.7"
>
> Hope this helps.
> Spencer Graves
>
> Henrik Bengtsson wrote:
> > Hi,
> >
> > as already mentioned, do not save MAT files in ASCII format but save
> > to binary formats, i.e. do *not* use "-ascii". Moreover, from
> > ?readMat, you find that:
> >
> > "From Matlab v7, _compressed_ MAT version 5 files are used by
> > default [3]. These are not supported. Use 'save -V6' in Matlab to
> > write a MAT file compatible with Matlab v6, that is, to write a
> > non-compressed MAT version 5 file. Note: Do not mix up version
> > numbers for the Matlab software and the Matlab file formats."
> >
> > You haven't told use what version of R you are using (neither what
> > version of R.matlab), but from the error message I suspect you are
> > using Matlab v7, correct? If so, try to save with
> >
> > save('test.mat', 'matrixM', '-ascii', '-V6')
> >
> > and tell us if it works.
> >
> > Cheers
> >
> > Henrik
> >
> >
> > On 4/10/07, Schmitt, Corinna <Corinna.Schmitt at igb.fraunhofer.de> wrote:
> >
> >> Hallo,
> >>
> >>
> >>> With readMat, don't use the "-ascii" option (which you didn't have in your
> >>> first posting). I've never tried reading matlab's ascii format. In any >case,
> >>> readMat reads matlab's binary format.
> >>>
> >>> - Tom
> >>>
> >> I did the saving again without 'ascii' option but the import also did not work. I get the following error message:
> >>
> >>
> >>> library(R.matlab)
> >>> mats <- readMat("Z:/Software/R-Programme/test2.dat")
> >>>
> >> Fehler in list("readMat("Z:/Software/R-Programme/test2.dat")" = <environment>, :
> >>
> >> [2007-04-10 14:57:52] Exception: Tag type not supported: miCOMPRESSED
> >> at throw(Exception(...))
> >> at throw.default("Tag type not supported: ", tag$type)
> >> at throw("Tag type not supported: ", tag$type)
> >> at readMat5DataElement(this)
> >> at readMat5(con, firstFourBytes = firstFourBytes, maxLength = maxLength)
> >> at readMat.default("Z:/Software/R-Programme/test2.dat")
> >> at readMat("Z:/Software/R-Programme/test2.dat")
> >>
> >> Any further idea,
> >> Corinna
> >>
> >> ----------------------------------------------------------------------------
> >>
> >>
> >> Schmitt, Corinna wrote:
> >>
> >>> Hallo,
> >>>
> >>>
> >>>> I've used Henrik Bengtsson's R.matlab package several times to
> >>>>
> >> successfully
> >>
> >>>> read in matlab data files. It's normally as easy as:
> >>>>
> >>>> library(R.matlab)
> >>>> mats <- readMat("matrixM.txt")
> >>>>
> >>>> - Tom
> >>>>
> >>> I have imported this package, too. And tried your commands with the new
> >>> txt-file as mentioned in my last mail to the mailing list.
> >>>
> >>> I get the following error command:
> >>> mats = readMat("Z:/Software/R-Programme/test.dat")
> >>> Error in if (version == 256) { : Argument hat Länge 0
> >>> Zusätzlich: Warning message:
> >>> Unknown endian: . Will assume Bigendian. in: readMat5Header(this,
> >>> firstFourBytes = firstFourBytes)
> >>>
> >>> What did I wrong? Please check my txt-file which was constructed with the
> >>> matlab command "save('test.dat','matrixM','-ascii')"
> >>>
> >>> Thanks, Corinna
> >>>
> >>> ----------------------------------------------------------------------------
> >>>
> >>>
> >>> Schmitt, Corinna wrote:
> >>>
> >>>> Dear R-Experts,
> >>>>
> >>>> here again a question concerning matlab. With the command "matrixM=[1 2
> >>>> 3;4 5 6]" a matrix under Matlab was constructed. It was than stored with
> >>>> the command "save('matrixM.txt','matrixM')".
> >>>>
> >>>> Now I tried to import the data in R with the help of the command
> >>>> "Z=matrix(scan("Z:/Software/R-Programme/matrixM.txt"))"
> >>>>
> >>>> An error occurred.
> >>>>
> >>>> The result should be a matrix with the entries as mentioned above.
> >>>> Perhaps I made already an error in matlab.
> >>>>
> >>>> Has any one got an idea how to import the data and store it in R. In R I
> >>>> want to make further calculations with the matrix. I just installed
> >>>> R.matlab but could not find an example with could help me.
> >>>>
> >>>> Thanks, Corinna
> >>>>
> >>>> MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Tue Apr 10 13:17:44
> >>>> 2007
> >>>> �IM���3���xãc``p�b6 æÒ À
> >>>> å31331;ç&eVøÅAjYX
> >>>>
> >>> �[n|
> >>>
> >>>> ______________________________________________
> >>>> R-help at stat.math.ethz.ch mailing list
> >>>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>>> PLEASE do read the posting guide
> >>>> http://www.R-project.org/posting-guide.html
> >>>> and provide commented, minimal, self-contained, reproducible code.
> >>>>
> >>>>
> >>>>
> >>> --
> >>> View this message in context:
> >>> http://www.nabble.com/Matlab-import-tf3552511.html#a9918327
> >>> Sent from the R help mailing list archive at Nabble.com.
> >>>
> >>> ______________________________________________
> >>> R-help at stat.math.ethz.ch mailing list
> >>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>> PLEASE do read the posting guide
> >>> http://www.R-project.org/posting-guide.html
> >>> and provide commented, minimal, self-contained, reproducible code.
> >>>
> >>> ______________________________________________
> >>> R-help at stat.math.ethz.ch mailing list
> >>> https://stat.ethz.ch/mailman/listinfo/r-help
> >>> PLEASE do read the posting guide
> >>> http://www.R-project.org/posting-guide.html
> >>> and provide commented, minimal, self-contained, reproducible code.
> >>>
> >>>
> >>>
> >> --
> >> View this message in context: http://www.nabble.com/Matlab-import-tf3552511.html#a9918787
> >> Sent from the R help mailing list archive at Nabble.com.
> >>
> >> ______________________________________________
> >> R-help at stat.math.ethz.ch mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >>
> >> ______________________________________________
> >> R-help at stat.math.ethz.ch mailing list
> >> https://stat.ethz.ch/mailman/listinfo/r-help
> >> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> >> and provide commented, minimal, self-contained, reproducible code.
> >>
> >>
> >
> > ______________________________________________
> > R-help at stat.math.ethz.ch mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >
>
More information about the R-help
mailing list