我想用 textscan 函数在 Matlab 中扫描文本文件的文本。在使用 fid = fopen('C:\path') 打开文本文件之前,我需要先解压缩文件。这些文件的扩展名为:*.gz
我需要分析数千个文件,高性能很重要。
我有两个想法: (1) 使用外部程序在 Matlab 中从命令行调用它 (2) 使用 Matlab 的“zip”工具箱。我听说过gunzip,但不知道它的性能。
有谁知道从 Matlab 中尽快解压缩这些文件的方法吗?
谢谢!
最佳答案
您总是可以尝试 Matlab unzip() 函数:
解压
解压缩压缩文件的内容
语法
解压缩(压缩文件名) 解压缩(压缩文件名,输出目录) 解压缩(网址,...) 文件名 = 解压(...)
描述
unzip(zipfilename) 将 zipfilename 的存档内容提取到当前文件夹并设置文件的属性,保留时间戳。如果现有文件的属性和所有权允许,它会覆盖任何与存档中同名的现有文件。例如,对同一个 zip 文件名重新运行解压缩的文件不会覆盖任何具有只读属性的文件;相反,unzip 会针对此类文件发出警告。
在内部,这使用 Java 的 zip 库 org.apache.tools.zip
。如果您的每个 zip 存档都包含许多文本文件,那么将它们放入 Java 并逐条提取它们可能会更快,而无需显式解压缩文件。查看 unzip.m 的源代码以获得一些想法,以及 Java 文档。
关于performance - 在函数期间在 Matlab 中解压缩文本文件的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295312/