注意:这是我发布的“restore_idl”的更新版本,因为我的电子邮件地址改变了,我不能再修改它。请查看该帖子的评论,看看用户对此有什么看法。正如下面提到的,所有数据可用的问题都得到了解决,从而获得了处理数据类型的完整目录的更大能力。
Matlab和IDL之间的数据交换是一个长期的挑战。导出为中间格式(CSV、HDF等)通常就可以完成这项工作,但是将每种语言的本机存档文件读入另一种语言会简单得多。
“restore_idl_gui”是一个Matlab GUI,允许从IDL保存文件恢复变量。变量被恢复到Matlab基础工作空间。可选地将创建的变量名称更改为小写。
操作:
点击“选择IDL文件”-使用文件浏览器识别IDL保存文件。IDL文件中的变量将列出它们的数据类型(标量,数组,结构,uint8, float32等);对于数组,它们的维数。
在显示列表框中选择一个或多个变量(按下shift键、按下control键等可进行多个选择)
如果需要,选择“转换名称为小写字母”。变量的名称(和结构字段名)保存在ALL大写,所以如果你觉得这很烦人,点击方便的复选框(实际上它默认是选中的,因为我觉得这很烦人)。
单击“恢复选定”-选定的变量将在基本Matlab工作区中创建。
功能:
可以处理所有基本IDL数字、数组、字符串和结构数据类型。不恢复对象引用。不理解ulong64偏移量,因此不能处理>4GB的文件。
包含数组或其他结构的字段的结构通过递归进行处理。已知可以正确使用IDL 8.1版的保存文件。一些用户报告在处理他们的数据文件时遇到了问题,所有这些问题在他们的数据可用时都得到了解决;代码现在知道如何处理IDL堆变量,保存文件中的预定义结构,以及带有“继承自超类”标志集的变量。IDL“对象指针”不受支持,因为它们在Matlab中没有意义万博1manbetx,它们将继续没有意义。
由于用于开发代码的文件格式描述是几年前的(参见下面的链接),因此可能也适用于早期版本的文件。不处理压缩文件,也就是说,SAVE命令中的“/COMPRESS”开关不能使用。这个能力不会马上出现。
非gui版本是一个函数“restore_idl”,它将保存文件的完整路径名作为输入参数(如果没有指定有效文件,则提供浏览器),以及其他一些选项,包括“小写”和“verbose”。以以下几种方式之一返回它能从文件中理解的所有变量:默认情况下,作为一个包含所有恢复变量的字段的单一结构;或者可选地作为一个包含两个字段的结构数组:一个字符串“name”和一个单元格数组“value”,其中包含变量;或者在基本MATLAB工作空间中创建变量。
根据Craig Markwardt对IDL保存文件格式的描述:
http://www.physics.wisc.edu/~craigm/idl/savefmt/
C. Pelizzari,芝加哥大学,2013年10月(原文)
新版本2018年4月,能够处理更多的数据类型
引用作为
查尔斯·佩利扎里(2023年)。恢复IDL保存文件(//www.tianjin-qmedu.com/matlabcentral/fileexchange/67085-restore-idl-save-files), MATLAB中央文件交换。检索.