#include #include #include #include "matfile.h" double floats[5] = {0.0, 1.0, 3.14, 2.72, 5.5}; int main(void) { FILE *fp = fopen("test.mat", "w"); if (fp == NULL) { perror("fopen"); return -1; } // Write File Header assert(write_header(fp)); // Setup Array Dimensions int32_t dims[2] = {1, 5}; mData_t dim_data; dim_data.data = (void *)&dims; dim_data.tag.type = miINT32; dim_data.tag.size = 8; // Array Flags mArrayFlags_t flags; memset(&flags, 0, sizeof(flags)); flags.global = 0; flags.complex = 0; flags.logical = 0; flags.class = mxDOUBLE_CLASS; mData_t flags_data; flags_data.tag.type = miUINT32; flags_data.tag.size = 8; flags_data.data = (void *)&flags; // Name mSmallData_t name; name.tag.type = miINT8; name.tag.size = 1; name.data = 'A'; mData_t data; data.tag.type = miDOUBLE; data.tag.size = sizeof(floats); data.data = (void *)floats; mTag_t array; array.type = miMATRIX; array.size = 96; fwrite((void *)&array, 1, sizeof(array), fp); write_data(fp, flags_data); write_data(fp, dim_data); write_small_data(fp, name); write_data(fp, data); fclose(fp); return 0; }