首页 > 解决方案 > 从文件流中使用 MatLabReader

问题描述

我有一个封装在 zip 文件中的 Matlab .MAT 文件。我正在尝试打开 zip 文件并将 Mat 文件的内容读入 math.net.numerics 矩阵字典。当我尝试从 zip 文件的文件流上调用 matlab 阅读器时,我不断从 Matlab 阅读器的某个地方收到“不支持操作”异常。希望这里有人知道我做错了什么

Private Sub LoadFromZippedFileArchive(zipPath As String, archiveName As String)
    Using zipStream As New FileStream(zipPath, FileMode.Open, FileAccess.Read)
        Using zArchive As New ZipArchive(zipStream, ZipArchiveMode.Read)
            Dim matFileArchive As ZipArchiveEntry = zArchive.GetEntry(archiveName)
            Using matFileStream As Stream = matFileArchive.Open
                ReadFromMatFile(matFileStream)
            End Using
        End Using
    End Using
End Sub


Private Sub ReadFromMatFile(fStream As Stream)
    MyBase.Clear()
    '
    ' I always get an 'Operation Not Supported' exception from the following statement
    '
    Dim matrixDict As Dictionary(Of String, Matrix(Of Double)) = MatlabReader.ReadAll(Of Double)(fStream) 
    For Each mName As String In matrixDict.Keys
        Dim iType As BadalImageStackFrame.IMAGE_TYPE = BadalImageStackFrame.IMAGE_TYPE.UNKNOWN
        [Enum].TryParse(Of BadalImageStackFrame.IMAGE_TYPE)(mName, iType)
        MyBase.Add(iType, matrixDict(mName))
    Next
End Sub

标签: vb.netmatlabmath.net

解决方案


推荐阅读