如何在Matlab中读取.npy文件

15

我想知道是否有一种方法可以在Matlab中读取.npy文件。 我知道可以使用Python中的scipy.io.savemat将其转换为Matlab格式的.mat文件; 但是我更感兴趣的是Matlab本地或插件支持.npy文件。


2
文件格式规范在这里。我怀疑是否有人编写了Matlab例程来读取此格式,但我可能是错的。 - pv.
那么.npz文件呢? - Charlie Parker
3个回答

17

这对我有用,我用它来读取npy文件。

https://github.com/kwikteam/npy-matlab

如果你只想读取.npy文件,你只需要从npy-matlab项目中获取两个文件:readNPY.m和readNPYheader.m。

使用方法非常简单:

>> im = readNPY('/path/to/file.npy');

1
这个回答在理论上可能会解决问题,但最好在此处包含答案的基本部分以供未来用户参考,并提供链接作为参考。链接为主导的答案可能会因为链接腐烂而失效。 - Mogsdad
1
实际上,这段代码已经获得了许可,不能在此发布。另一方面,readNPY并不太长,可以解释清楚。很难说什么是最好的选择。 - Trilarion
@Trilarion - 没有必要在这里发布授权代码,而且那不是我们所寻找的。修订后的答案很好(+1 感谢 miluz 的努力改进),因为它现在展示了一个简单的使用示例,而原始答案只包含了一些建议和链接。(依我之见,如果您想进行比较,被接受的答案在质量方面勉强可以接受。) - Mogsdad
@Mogsdad难道不是吗?难道链接的内容在某些时候不会消失吗?那么对于这个答案应该怎么办呢? - Trilarion
从“如果你只想要…”开始的答案是一个独立的答案,没有链接。链接使它更有帮助。如果链接失效,答案就不那么有用了,但仍然是一个答案。(关于链接为主导的答案的完整辩论,请先阅读我提供的参考资料。)我们不是第一个走这条崎岖之路的人… - Mogsdad
那么.npz文件怎么样? - Charlie Parker

5

那么.npz文件怎么样? - Charlie Parker
解压缩 npz 文件以获取 npy 文件。 - Daniel

3

一个快速的方法是在Python中读取它,如下所示:

data = np.load('/tmp/123.npz')

然后,再次使用Python将其保存为“.csv”格式,使用Python文档或其他方法。

numpy.savetxt('FileName.csv', arrayToSave)

(更多文档在这里)

最后,您可以使用以下命令在MATLAB中阅读它,

csvread()

快速更新: 正如评论中用户“Ender”所提到的,csvread()现已过时,readmatrix()取而代之。(文档


2
csvread()现已弃用,readmatrix()取而代之。 - Ender

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