在Node.js中将MATLAB表文件作为Array加载

时间:2019-01-25 12:53:03

标签: javascript node.js matlab

我目前正在为Web应用程序构建测试服务器,该服务器应通过Websocket向其提供虚假数据。伪数据位于MATLAB表文件(.mat)中。 Mat文件基本上只是一个4000 * 192的数组。我想将其映射到一个javascript数组中,以便可以对其进行迭代并将其逐列发送到客户端。

我只是不知道如何将MATLAB表转换为Node.js中的javascript数组。我发现的所有库都不支持node.js,因为jdataview如何处理节点缓冲区。

1 个答案:

答案 0 :(得分:1)

我相信您正在尝试加载.mat文件。如Vasyl先前所述,以下git存储库是您最好的选择-Read Mat File

请尝试-

var jBinary = require('jbinary')
var MAT = require('jMatFile')

jBinary.load('myMat.mat', MAT).then(function (binary) {
  var mat = binary.readAll
  // or equivalently
  var mat = binary.read('mat')
})

我能够将数据加载到控制台,但是现在正在努力解决其他问题。

在文档中还指出,排版仅与完全支持类型数组的JS引擎一起使用。从4年前开始(回购最近更新),该限制有意排除:

  • phantomjs,因为它不支持Float64Array
  • nodejs,因为jdataview对节点缓冲区的特殊处理

您还必须安装npm目录中没有的jMatFile,同样,Vasyl在前面的评论中指出也是正确的。在执行通常的“ npm start”之前运行这些-

npm i jBinary

npm i https://github.com/fluffynukeit/jMatFile.git