[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: how to save matrix from an oct file
From: |
Carlo de Falco |
Subject: |
Re: how to save matrix from an oct file |
Date: |
Wed, 12 May 2010 08:04:48 +0200 |
On 11 May 2010, at 12:54, Carlo de Falco wrote:
Hi,
for debugging an oct file I am working on, I would like to save a
SparseMatrix to a file so that I can later load it in octave and
inspect it.
I naively tried the following:
1) for ascii format
SparseMatrix mat;
....
std::ofstream os ("mat.txt");
octave_value (mat).save_ascii (os);
os.close();
which seems to work but saves the matrix entries in IJV format and I
have to later convert them with spconvert.
2) for binary format
std::ofstream os ("mat.mat");
bool boolvar(false);
octave_value (mat).save_binary (os, boolvar);
os.close();
which doesn't seem to work correctly as
>> load mat.mat
error: load: mat.mat: inconsistent number of columns near line 2
error: load: unable to extract matrix size from file `mat.mat'
What is the correct way to do this?
Thanks in advance,
c.
To (partly) respond to my own question, the following seems to work in
3.2.3:
#include <octave/ls-oct-ascii.h>
SparseMatrix mat;
...
std::ofstream os ("mat.mat");
bool boolvar(false);
save_ascii_data (os, octave_value (mat),
std::string("mat"),
boolvar, boolvar);
os.close();
But the equivalent for binary format still fails:
#include <octave/ls-oct-binary.h>
SparseMatrix mat;
...
std::ofstream os ("mat.mat");
bool boolvar(false);
save_binary_data (os, octave_value (mat),
std::string("mat"), std::string(""),
boolvar, boolvar);
os.close();
>> load mat.mat
error: load: mat.mat: inconsistent number of columns near line 2
error: load: unable to extract matrix size from file `mat.mat'