使用JavaScript创建.mat文件

4

我正在开发一个插件(用于 Grafana,这是一个分析和监控的开放平台,https://grafana.com/),为了让数据分析更加便捷,我希望插件用户能够直接从 Grafana 下载 .mat 文件。然而,在我的 JavaScript 代码中,我无法创建一个合适的 .mat 文件。我尝试了以下方法:

<button onclick="download('file text', 'myfilename.mat', 'text/plain')"><a href="" 
id="a">click here to download your file</a>Create file</button>
<script>
    function download(text, name, type) {
        var a = document.getElementById("a");
        var file = new Blob([text], {type: type});
        a.href = URL.createObjectURL(file);
        a.download = name;
        }
</script>

来自JavaScript:创建并保存文件。然而,以这种方式创建的.mat文件会出现以下错误:

使用load时出错 ASCII文件C:\Users\Esmee\Downloads\myfilename (2).mat的第1行上有未知文本 “file”。

在uiimport/runImportdata (line 459)中出错 datastruct = load('-ascii', fileAbsolutePath);

在uiimport/gatherFilePreviewData (line 427)中出错 [datastruct, textDelimiter, headerLines]= runImportdata(fileAbsolutePath, type);

在uiimport (line 244)中出错 gatherFilePreviewData(fileAbsolutePath);

我不知道该怎么办。我认为问题在于仅仅将字符串“file text”放入.mat文件中,并不是MATLAB通常使用的文件语法。是否有人有使用JavaScript / html创建.mat文件的经验,或者是否有人知道应该以什么格式制作此文件才能在MATLAB中读取?

提前感谢!


只是顺便提一下:MATLAB 可以读取的东西比 .mat 文件多得多。你考虑过用其他方式存储数据吗? - Ander Biguri
你可以使用Python 保存mat文件。也许这会对你有所帮助。 - buzjwa
1个回答

0

MAT文件以二进制形式存储数据。

MathWorks已经发布了文件格式规范这里

您可以尝试按照规范将数据格式化为单个Uint8Array,并将其传递给Blob构造函数。有关更多详细信息,请参见此问题的已接受答案


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接