|
PLearn 0.1
|
The first sentence should be a BRIEF DESCRIPTION of what the class does. More...
#include <ExtractOptionCommand.h>


Public Member Functions | |
| ExtractOptionCommand () | |
| virtual void | run (const std::vector< std::string > &args) |
| The actual implementation of the 'ExtractOptionCommand' command. | |
Static Protected Attributes | |
| static PLearnCommandRegistry | reg_ |
| This allows to register the 'ExtractOptionCommand' command in the command registry. | |
Private Types | |
| typedef PLearnCommand | inherited |
The first sentence should be a BRIEF DESCRIPTION of what the class does.
Place the rest of the class programmer documentation here. Doxygen supports Javadoc-style comments. See http://www.doxygen.org/manual.html
Definition at line 58 of file ExtractOptionCommand.h.
typedef PLearnCommand PLearn::ExtractOptionCommand::inherited [private] |
Definition at line 60 of file ExtractOptionCommand.h.
| PLearn::ExtractOptionCommand::ExtractOptionCommand | ( | ) |
Definition at line 52 of file ExtractOptionCommand.cc.
: PLearnCommand( "extract_option", "Extracts an option from a saved plearn object (.psave) and saves it to its own file.", " extract_option <objfile.psave> <optionname> <optionfile.psave>\n" "OR extract_option <objfile.psave> <optionname> <optionfile.pmat> <transpose> \n" "The first form will output the option serialized in plearn_ascii format\n" "The second form is available only for Mat or Vec options, and will save it as a .pmat file.\n" "For Mat, if transpose is 0 then the matrix won't be transposed. If it's 1 it will be transposed.\n" "For Vec, if transpose is 0 then it will be saved as a row matrix. If it's 1, i will be saved as a column matrix.\n" ) {}
| void PLearn::ExtractOptionCommand::run | ( | const std::vector< std::string > & | args | ) | [virtual] |
The actual implementation of the 'ExtractOptionCommand' command.
Implements PLearn::PLearnCommand.
Definition at line 66 of file ExtractOptionCommand.cc.
References PLearn::endl(), in, PLearn::TMat< T >::length(), PLearn::loadObject(), m, PLearn::openFile(), PLearn::openString(), PLearn::perr, PLearn::PStream::plearn_ascii, PLERROR, PLearn::VMatrix::putMat(), PLearn::toint(), PLearn::transpose(), and PLearn::TMat< T >::width().
{
if(args.size()==3)
{
string objfile = args[0];
string optionname = args[1];
string optionfile = args[2];
PP<Object> obj = loadObject(objfile);
PStream out = openFile(optionfile, PStream::plearn_ascii, "w");
obj->writeOptionVal(out, optionname);
out = 0;
perr << "Option " << optionname << " has been written to file " << optionfile << endl;
}
else if(args.size()==4)
{
string objfile = args[0];
string optionname = args[1];
string optionfile = args[2];
int do_transpose = toint(args[3]);
PP<Object> obj = loadObject(objfile);
string optionval = obj->getOption(optionname);
bool ismat = false;
Mat m;
try
{
PStream in = openString(optionval, PStream::plearn_ascii);
in >> m;
perr << "Extracted a " << m.length() << " x " << m.width() << " matrix" << endl;
ismat = true;
}
catch(const PLearnError& e)
{ ismat = false; }
if(!ismat)
{
Vec v;
PStream in = openString(optionval, PStream::plearn_ascii);
in >> v;
perr << "Extracted a vector of length " << v.length() << endl;
m = v.toMat(1,v.length());
}
if(do_transpose==1)
m = transpose(m);
FileVMatrix vmat(optionfile, m.length(), m.width());
vmat.putMat(0, 0, m);
vmat.flush();
perr << "Option " << optionname << " has been written to file " << optionfile << endl;
}
else
PLERROR("Wrong number of argumens, please consult help");
}

PLearnCommandRegistry PLearn::ExtractOptionCommand::reg_ [static, protected] |
This allows to register the 'ExtractOptionCommand' command in the command registry.
Definition at line 67 of file ExtractOptionCommand.h.
1.7.4