Hi. On Sat, Aug 28, 2010 at 3:50 PM, michael <tufemich...@gmail.com> wrote: > Henrik, > OK, finally I got the problem: I have an apostrophe in my > windowns 7 user name. That mess up the file name. So I logged in using a > guest account and it works: > > Received cmd: 1 > "eval" string: "B" > B = > -0.1347 > Sent byte: 0 > Received cmd: 1 > "eval" string: "variables = {'B'};" > Sent byte: 0 > Received cmd: 2 > save tempname-V6 B > answer=0 > > Thanks a lot for your patience and help.
Good that you found a workaround. > One final question, the variable B I got from Matlab is not just a numeric > value, it is: > >> B > $B > [,1] > [1,] -0.1346952 > attr(,"header") > attr(,"header")$description > [1] "MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Sat Aug 28 18:40:26 > 2010 " > attr(,"header")$version > [1] "5" > attr(,"header")$endian > [1] "little" > How can I get only the numeric value, that ' -0.1346952' part? The getVariable() function returns a named list where each element contains the value of a particular Matlab object. You can request more than one variable in each call. You need to use standard R list operators to extract the element you'd like. For example: data <- getVariable(matlab, c("B", "A")); B <- data$B; A <- data$A; Thus, instead of writing: B <- getVariable(matlab, "B"); B <- B$B; it is less confusing if you write: data <- getVariable(matlab, "B"); B <- data$B; /Henrik > > > Thanks again, > > Michael > On Fri, Aug 27, 2010 at 7:59 AM, michael <tufemich...@gmail.com> wrote: > >> Hi,all >> I have a problem running R.matlab package >> (under 2.10.1 version). I can set up the matlab server under local >> machine(run the MatlabServer.m), " >> >> >> And I can use setVariable and evaluate matlab functions in R. But when I >> ask >> Matlab to send the value back to R using getVariable function it >> always returns an error: >> " >> ??? Error: A MATLAB string constant is not terminated properly. >> >> Error in ==> MatlabServer at 197 >> eval(expr); >> " >> >> it seems matlab have put the data into a temporary file, so my remote >> option is actually FALSE? (how to set it to be true?), or otherwise >> what could be the possible problem since I can send data to matlab >> from R but not vice versa. >> >> >> >> > sessionInfo() >> R version 2.10.1 (2009-12-14) >> i386-pc-mingw32 >> >> locale: >> [1] LC_COLLATE=English_United States.1252 >> [2] LC_CTYPE=English_United States.1252 >> [3] LC_MONETARY=English_United States.1252 >> [4] LC_NUMERIC=C >> [5] LC_TIME=English_United States.1252 >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] R.utils_1.5.0 R.matlab_1.3.1 R.oo_1.7.3 R.methodsS3_1.2.0 >> >> >> > traceback() >> 5: file(con, open = "rb") >> 4: readMat.default(filename) >> 3: readMat(filename) >> 2: getVariable.Matlab(matlab, "B") >> 1: getVariable(matlab, "B") >> >> Thanks, >> >> Michael >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org 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@r-project.org 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.