恢复IDL保存文件

将IDL保存文件中的变量恢复到Matlab

467下载

更新4月3日2020

查看许可协议

注意:这是我发布的“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中央文件交换。检索

MATLAB版本兼容性
使用R2014b创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux
标签添加标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!
版本 发表 发布说明
1.15.0.1

修正了复杂变量排序的问题。感谢Ines Belgacem识别错误和

1.15.0.0

稍微编辑了一下描述

为大型结构数组添加等待条
更改截图图片