John - One quick follow-up about the warnings: I think they have to do with loading cell arrays. Basically, all the actual data ends up in the #refs# field, in what seems like an arbitrary order, and the field that should contain the data is all NAs. Do you know if there's any way to get around that? I think all the cell arrays being saved contain only strings, so I can change things in MATLAB to save them as char arrays if necessary.
Thanks. - Elliot On Wed, Mar 25, 2015 at 12:26 PM, Elliot Joel Bernstein <e...@cornell.edu> wrote: > John - > > Thanks for the suggestions. I tried taking not only Rcpp but R out of the > loop, and just compiling from the command line with MinGW. That crashed as > well, so I think there's probably a compatibility issue with MATLAB's API > and MinGW. I'll contact Mathworks tech support to try and get some help > with that. > > Regarding v7.3...my files aren't all v7.3, but I could definitely save > them all that way, which might be the easiest solution. I tried what you > suggested with some of my real data files, which contain two variables > each: a matrix and a struct. I get the following warnings: > > > data <- h5dump("z:/temp/test73.mat", bit64conversion='double') > Warning: h5read for type 'REFERENCE' not yet implemented. Values replaced > by NA's > Warning: h5read for type 'REFERENCE' not yet implemented. Values replaced > by NA's > Warning: h5read for type 'REFERENCE' not yet implemented. Values replaced > by NA's > > The data look OK, as far as I can tell. (The matrix is 411x30927, so it's > not like I can check every element, but I don't see anything obviously > wrong.) In addition to the two variables I was expecting, the result has > two additional elements, #refs# and #subsystem. I'm not actually sure how > to see what they contain, since the names include the comment character. > Can I safely ignore those warnings? > > Thanks. > > - Elliot > > > On Wed, Mar 25, 2015 at 11:09 AM, John Buonagurio < > jbuonagu...@exponent.com> wrote: > >> Elliot, >> >> How are you building the executable? Did you make sure to include all >> dependencies in the search path (run depends.exe against libmat.dll and >> libmx.dll)? Did you make sure to set the appropriate architecture e.g. -m64 >> in CFLAGS? I don't have access to the MAT-File libraries to test this >> myself. >> >> Start simple and take Rcpp out of the equation. Call matOpen from a >> simple C function with type void. Does it work with dyn.load() and .C()? >> >> If you are *only* working with v7.3 files which are based on HDF5, you >> may be able to avoid this issue and access them using rhdf5: >> >> source("http://bioconductor.org/biocLite.R") >> biocLite("rhdf5") >> library(rhdf5) >> h5dump("file.mat", load=FALSE) >> >> John >> >> From: rcpp-devel-boun...@lists.r-forge.r-project.org [mailto: >> rcpp-devel-boun...@lists.r-forge.r-project.org] On Behalf Of Elliot Joel >> Bernstein >> Sent: Wednesday, March 25, 2015 9:28 AM >> To: Dale Smith >> Cc: x...@unm.edu; rcpp-devel@lists.r-forge.r-project.org >> Subject: Re: [Rcpp-devel] R.e. Using Rcpp and MATLAB MAT-File API to Read >> MAT Files >> >> Dale - >> >> Thank you for the suggestion. I have MATLAB and the MATLAB libraries, and >> I am not looking to redistribute anything. I just have a lot of data in MAT >> files that I would like to be able to load analyze in R. I am able to >> compile and link against the MATLAB libraries, but the code crashes when I >> run it. I looked into the Octave FAQ. It looks like they don't handle v7.3 >> files either, and I don't think they provide an API that I could access >> from R/C++. >> >> - Elliot >> >> On Wed, Mar 25, 2015 at 8:36 AM, Dale Smith <dsm...@nexidia.com> wrote: >> mat.h is a header file which comes with MATLAB. I don't think the license >> allows redistribution, and you would not be able to compile without the >> MATLAB libraries. >> >> An alternative may be Octave since it will read .mat files. Perhaps >> someone can email the name of the header file used from the Octave >> distribution? >> >> >> http://stackoverflow.com/questions/9915658/how-do-you-open-mat-files-in-octave >> >> This also offers a viable way to test this type of code for those who >> don't have MATLAB. >> >> Dale Smith, Ph.D. | Data Scientist | nexidia | office: +1 404 495 7220 >> ext 4008 | fax: +1 404 495 7221 | nexidia.com >> >> >> -----Original Message----- >> From: rcpp-devel-boun...@lists.r-forge.r-project.org [mailto: >> rcpp-devel-boun...@lists.r-forge.r-project.org] On Behalf Of Christian >> Gunning >> Sent: Wednesday, March 25, 2015 8:08 AM >> To: rcpp-devel@lists.r-forge.r-project.org >> Subject: [Rcpp-devel] R.e. Using Rcpp and MATLAB MAT-File API to Read MAT >> Files >> >> Can you provide a link to the mat.h file referenced in the source (which >> I assume is the same as the API mentioned below)? >> >> Also, see Dirk's comments about compilers here: >> http://stackoverflow.com/questions/10723165/using-visual-c-with-r >> and here: >> dirk.eddelbuettel.com/code/rcpp/Rcpp-FAQ.pdf >> >> Best, >> Christian >> >> > I'm trying to use the MATLAB Mat-File API to read data from MAT files >> > into R. (I've tried using the R.matlab package, but the matrices I'm >> > loading can be very large, and that method was too slow. In addition, >> > some of the files I'm loading are v7.3 MAT files, which are not >> > supported by the package.) I wrote the following simple function to >> > start testing. It works fine if I compile without the Rcpp parts in >> > Visual Studio (i.e. I can call matOpen and get a nonzero pointer), but >> > when I run in R it crashes my R session without displaying "Test". >> > >> > #include <Rcpp.h> >> > #include "mat.h" >> > >> > using namespace Rcpp; >> > >> > // [[Rcpp::export]] >> > NumericVector rcpp_mat_load() { >> > >> > MATFile* mf = matOpen("z:/temp/test.mat", "r"); >> > printf("Test\n"); >> > double val = 10; >> > NumericVector y = NumericVector::create(val); >> > return y; >> > } >> >> -- >> A man, a plan, a cat, a ham, a yak, a yam, a hat, a canal – Panama! >> _______________________________________________ >> Rcpp-devel mailing list >> Rcpp-devel@lists.r-forge.r-project.org >> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel >> _______________________________________________ >> Rcpp-devel mailing list >> Rcpp-devel@lists.r-forge.r-project.org >> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel >> >> >
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel