【问题标题】:How to read .npy files in Matlab如何在 Matlab 中读取 .npy 文件
【发布时间】:2014-02-28 12:16:43
【问题描述】:

我想知道是否有办法在 Matlab 中读取 .npy 文件?我知道我可以在 Python 中使用 scipy.io.savemat 将它们转换为 Matlab 风格的 .mat 文件;但是我对 Matlab 中对 .npy 文件的本机或插件支持更感兴趣。

【问题讨论】:

  • 文件格式规范为here。我怀疑有人编写了一个 Matlab 例程来读取这种格式,但我可能错了。
  • .npz 文件呢?

标签: python matlab numpy scipy format-conversion


【解决方案1】:

有一个可用的 c++ 库https://github.com/rogersce/cnpy

您可以编写一个 mex 函数来读取数据。我更愿意将所有内容存储在 hdf5 中

【讨论】:

  • .npz 文件呢?
  • 解压npz得到npy文件。
【解决方案2】:

这为我完成了这项工作,我用它来读取 npy 文件。

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

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

用法很简单:

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

【讨论】:

  • 这在理论上可以回答这个问题,但最好将答案的基本部分包含在此处以供将来的用户使用,并提供链接以供参考。 Link-dominated answers 可以通过link rot 失效。
  • 实际上该代码已获得许可,因此也无法在此处发布。另一方面, readNPY 并不太长,无法解释它。很难说这里最好的是什么。
  • @Trilarion - 无需在此处发布许可代码,这不是我们想要的。修改后的答案很好(+1 表示努力改进它,miluz),因为它现在显示了一个简单的使用示例,而原始答案仅包含推荐和链接。 (恕我直言,如果您想比较的话,接受的答案几乎还可以,质量也不错。)
  • @Mogsdad 我们不是吗?链接的内容可能会在某个时候消失,这难道不是理由吗?那么这个答案该怎么办呢?
  • 从“如果你只想...”开始的答案是一个独立的答案,没有链接。该链接使其更有帮助。如果链接死了,答案就没有那么有用了,但仍然是一个答案。 (只需阅读我首先提供的参考资料 wrt Link-dominated answers 进行完整的辩论。)我们不是第一个走这条崎岖道路的人......
【解决方案3】:

一种快速的方法是在 python 中读取它,如下所示,

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

然后将其保存为“.csv”,再次由 python 使用 python documentation 或,

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

(more documentation here)

最后,您可以在 MATLAB 中使用following command 阅读它,

csvread()

快速更新: 正如 cmets 中提到的用户“Ender”,csvread() 现在已弃用,readmatrix() 取而代之。 (documentation)

【讨论】:

  • csvread() 现已弃用,而 readmatrix() 取而代之。
猜你喜欢
  • 2017-03-24
  • 2022-12-17
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多