Hi, I am trying to save a large matrix (40,000 x 50,000) into a matrix file (.fmt) but I get the error G0132: Can't write, disk probably full. The disk is not full. Is there some limit to the size of the matrices or the matrix files?
1 Answer
0
That matrix is about 16 GB. That is too large for the .fmt
file format. You can save it as either an HDF5 file, or a GAUSS Data Archive.
Example of creating an HDF5 file
x = { 1 2 3,
4 5 6,
7 8 9 };
fname = "mydata.h5";
//HDF5 files can hold many different datasets/matrics
dataset = "/data";
//Create HDF5 file to hold data
h5create(fname, dataset, rows(x)|cols(x));
//Add data to file
h5write(fname, dataset, x);
//Optional step, add variable names
var_names = "height" $| "weight" $| "age";
h5writeAttribute(fname, dataset, "headers", var_names);
//Then you can load the data, using 'loadd'
//Example loadding all columns
x_new = loadd("h5://mydata.h5/data");
//Example loading columns by name
ht_wt = loadd("h5://mydata.h5/data", "height + weight");
Example using GAUSS Data Archive
x = { 1 2 3,
4 5 6,
7 8 9 };
fname = "mydata.gda";
//Create GDA file
ret = gdaCreate(fname, 1);
//Add data to GDA file
matrix_name = "x";
ret = gdaWrite(fname, x, matrix_name);
//Read 'x' from GDA file
x_new = gdaRead(fname, matrix_name);
Your Answer
1 Answer
0
That matrix is about 16 GB. That is too large for the .fmt
file format. You can save it as either an HDF5 file, or a GAUSS Data Archive.
Example of creating an HDF5 file
x = { 1 2 3,
4 5 6,
7 8 9 };
fname = "mydata.h5";
//HDF5 files can hold many different datasets/matrics
dataset = "/data";
//Create HDF5 file to hold data
h5create(fname, dataset, rows(x)|cols(x));
//Add data to file
h5write(fname, dataset, x);
//Optional step, add variable names
var_names = "height" $| "weight" $| "age";
h5writeAttribute(fname, dataset, "headers", var_names);
//Then you can load the data, using 'loadd'
//Example loadding all columns
x_new = loadd("h5://mydata.h5/data");
//Example loading columns by name
ht_wt = loadd("h5://mydata.h5/data", "height + weight");
Example using GAUSS Data Archive
x = { 1 2 3,
4 5 6,
7 8 9 };
fname = "mydata.gda";
//Create GDA file
ret = gdaCreate(fname, 1);
//Add data to GDA file
matrix_name = "x";
ret = gdaWrite(fname, x, matrix_name);
//Read 'x' from GDA file
x_new = gdaRead(fname, matrix_name);