在Matlab中加载由Octave创建的ASCII格式.mat文件。

4

由于我的许可证不足,我正在同时使用Matlab和Octave。只要我保持简单,就没有遇到任何问题。

最近,我开始使用.mat文件来减少单个文件的数量。

当我在Matlab中完成所有操作时,一切都很顺利,但是当我在Octave中使用“保存”时,它将文件保存为ASCII格式,并且开头看起来像这样,并且其中有多个矩阵和多个标题。

# Created by Octave 3.6.4, Mon Feb 24 21:34:39 2014 CET <***@****>
# name: C
# type: matrix
# rows: 10000
# columns: 10
 79 79 79 79 79 79 79 79 79 79
 74 115 87 55 101 46 83 92 113 61
 69 142 128 48 160 45 87 113 114 71
 84 107 145 62 245 78 69 88 149 78
 120 73 148 32 299 114 57 79 137 76

这很好,但Matlab拒绝读取该文件。无论是使用'load'和'-ASCII'还是使用importdata都不行。 (警告:文件包含无法解释的数据....)

我能做些什么吗?Octave使用'load'可以很好地加载文件。

谢谢!


你尝试过使用 -V4-V6-V7 选项来执行 save() 操作吗? - juliohm
谢谢!我错过了这个选项!在Matlab 8中运行良好。 - weelux
1个回答

2

在Octave中,可以保存为“-ascii”格式或者Matlab二进制格式v4、v6、v7。

octave:1> a = rand(3, 3)
a =
   0.086093   0.541999   0.889222
   0.029643   0.633532   0.762954
   0.544787   0.150573   0.927285
octave:2> save ("-ascii", "yourfile.asc")
octave:3> save ("-v7", "yourfile.mat")

回到Matlab中执行以下操作

>> b = load ('yourfile.asc')

b =

    0.0861    0.5420    0.8892
    0.0296    0.6335    0.7630
    0.5448    0.1506    0.9273

或者

>> load ('yourfile.mat')
>> a

a =

    0.0861    0.5420    0.8892
    0.0296    0.6335    0.7630
    0.5448    0.1506    0.9273

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接