Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在MATLAB中将.mat文件内容保存在内存中?_Arrays_Matlab_Serialization_Mat File - Fatal编程技术网

Arrays 如何在MATLAB中将.mat文件内容保存在内存中?

Arrays 如何在MATLAB中将.mat文件内容保存在内存中?,arrays,matlab,serialization,mat-file,Arrays,Matlab,Serialization,Mat File,我想获取特定矩阵的.mat文件的字节数组。我该怎么做 我可以通过以下命令在磁盘上保存矩阵: save('a.mat', 'a') 现在,我不想将.mat文件保存在磁盘上。相反,我希望它在内存中通过网络发送。我认为这是不可能的。但是您可以将MAT文件写入一个临时目录(请参见tempdir),然后将其作为二进制文件打开,将其内容作为uint8数组或类似的东西读回内存中。嗯。。。如果要通过网络发送mat文件的二进制内容,您别无选择,只能按以下步骤进行: 以mat格式将数据保存到磁盘: save('a

我想获取特定矩阵的.mat文件的字节数组。我该怎么做

我可以通过以下命令在磁盘上保存矩阵:

save('a.mat', 'a')

现在,我不想将.mat文件保存在磁盘上。相反,我希望它在内存中通过网络发送。

我认为这是不可能的。但是您可以将MAT文件写入一个临时目录(请参见
tempdir
),然后将其作为二进制文件打开,将其内容作为uint8数组或类似的东西读回内存中。

嗯。。。如果要通过网络发送
mat
文件的二进制内容,您别无选择,只能按以下步骤进行:

  • mat
    格式将数据保存到磁盘:

    save('a.mat','a')

  • 将保存的
    mat
    文件作为字节数组读取:

    fid=fopen('a.mat','r')
    
    data=fread(fid)

  • 通过网络发送二进制数据:

    发送数据(数据)

  • 如果您想采用更复杂的方法(顺便说一句,我不推荐),比如挖掘
    mat
    文件以提取数据,或者在运行时构建自己的
    mat
    文件,.

    您可以使用两个(和内部使用)来序列化/反序列化数据。这将允许您将矩阵
    a
    编码为字节流,与
    保存
    存储在.mat文件中时的方式相同:

    byteStream = getByteStreamFromArray(a);
    
    然后,您可以通过网络发送此字节流数据,并在接收端对其进行解码,如下所示:

    a = getArrayFromByteStream(byteStream);
    
    你是说
    加载('a.mat')