Octave load
Jump to navigation
Jump to search
The code below shows an example of how to load a matrix from a file in Octave's binary file format. An example of how to load data from a file in Octave's ascii format can be found in this page page.
Code: octave_binary_io_example.cc: C++ function to load a matrix from a BINARY file in Octave native format |
#include <fstream>
#include <octave/oct.h>
#include <octave/ov.h>
#include <octave/zfstream.h>
#include <octave/octave.h>
#include <octave/parse.h>
#include <octave/toplev.h>
#include <octave/load-save.h>
#include <octave/ls-oct-binary.h>
#include <octave/oct-map.h>
#include <cstring>
std::fstream file;
std::ios::openmode m = std::ios::in;
load_save_format format = LS_BINARY;
oct_mach_info::float_format flt_fmt = oct_mach_info::flt_fmt_unknown;
bool swap = false;
int main (void)
{
string_vector argv (1);
install_types ();
argv(0) = std::string ("test_var");
file.open ("test.bin", m);
if (read_binary_file_header (file, swap, flt_fmt, true) != 0)
return -1;
octave_scalar_map m = do_load (file, "test.bin", format,
flt_fmt, false, swap, true, argv,
0, 1, 1).scalar_map_value ();
std::cout << m.contents ("test_var").matrix_value ();
file.close ();
return 0;
}
|
To test, type the following in Octave:
>> test_var = randn(5);
>> save -binary test.bin test_var
|
Compile and run the example with the following commads
$ mkoctfile --link-stand-alone octave_binary_io_example.cc
$ ./a.out
|