Kenneth,
The Perl code I put together:
#!/fs/COTS/gnu/bin/AIX/perl
open(MATLAB,"| /home/sis3ewh/run_matlab -nojvm");
use FileHandle;
MATLAB->autoflush(1);
print MATLAB "timer = struct('seconds',289567981,'nano',944567000,'raw',[],'eng',char('Initializing'));save timer;\n";
What I'm hoping for is the following when loaded into MATLAB:
timer =
seconds: 289567981
nano: 944567000
raw: []
eng: 'Initializing
I get dumped into MATLAB but no .mat MATLAB appears anywhere with the name "timer.mat" and I can't figure out
where the problem is. Maybe some Monks are x-matlab gurus!
At any rate, any help would be appreciated - thanks!! | [reply] |
First, please read Writeup Formatting Tips, since your lack of <code> tags seriously impedes the legibility of your post. As well, the liberal addition of some <p> tags to break up the text would be helpful.
I can say there are no immediately clear errors in the posted code, but again I have not worked with MATLAB on the command line for quite some time. You do some things I would consider quite poor form, such as not testing for the success of your open, using bareword file handles and using 2-argument open, but these are not syntax errors.
A potentially much cleaner solution is rather than piping into the executable is use your Perl script to explicitly generate a .m file, and then execute the .m using system or backticks. In this way, you will have an audit trail so you can figure out which language is giving you problems - I frequently take this autogeneration approach with auxilliary programs. Remember that Perl was originally designed for text processing and does it exceptionally well.
Perhaps this will give you some ideas:
#!/usr/bin/perl
use strict;
use warnings;
open(my $matlab, '>', 'm_file.m');
print $matlab <<EOF;
x=1;
save timer;
EOF
system('matlab -nojvm -r m_file');
| [reply] [d/l] [select] |
Ken,
Poor form aside - which I'll work on - I can execute MATLAB from within Perl but given the following:
<x=0,1,2;y=0,1,2;plot(x,y,'o');save test;>
can Perl create a .mat file with these statements so that the file "test.mat" would be created?
| [reply] |
Why aren't you putting your code in <CODE></CODE> tags?
| [reply] [d/l] |
.soory about that - I'll do this from here on out....
wasn't familiar with the <code> tag which I realize is no
excuse....
| [reply] |