matlab读.h5文件「建议收藏」

matlab读.h5文件「建议收藏」之前用python给nuswide提取了VGG19特征,因为文件太大,超过.mat限制,存成.h5,见[1]。现在一个matlab程序要读,可以用h5disp查看.h5文件内容的结构(各个datasets),然后用h5read读。注意两点:文件名的类型要是char而不能是string,否则报错好像被自动转置了一次?我当初存的时候应该是n×dn\timesdn×d的,但读出来的时候变成d×nd\timesnd×n了(不知道是h5py[1]在存

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

之前用 python 给 nuswide 提取了 VGG19 特征,因为文件太大,超过 .mat 限制,存成 .h5,见 [1]。现在一个 matlab 程序要读,可以用 h5disp 查看 .h5 文件内容的结构(各个 datasets),然后用 h5read 读。

注意两点:

  • 文件名、dataset 的类型要是 char 而不能是 string,否则报错。可以用 c = char(s) 将 string 转成 char
  • 好像被自动转置了一次?我当初存的时候应该是 n × d n\times d n×d 的,但读出来的时候变成 d × n d\times n d×n 了(不知道是 h5py[1] 在存的时候自己转了,还是 matlab 读的时候自己转的)

Code

% "双"引号 是 string,会报错
% F = "datasets/nuswide-tc10/images.nuswide.vgg19.4096d.h5";
% '单'引号 是 char(数组),可以
F = 'datasets/nuswide-tc10/images.nuswide.vgg19.4096d.h5';

% 打印文件内结构
h5disp(F);

% 读
images = h5read(F, '/images');  % dataset name 也要用**单**引号 char
fprintf("images:"), disp(size(images));  % (4096, 269648)
  • 输出
HDF5 images.nuswide.vgg19.4096d.h5 
Group '/' 
    Dataset 'images' 
        Size:  4096x269648
        MaxSize:  4096x269648
        Datatype:   H5T_IEEE_F32LE (single)
        ChunkSize:  []
        Filters:  none
        FillValue:  0.000000

images:        4096      269648

References

  1. h5py存取简例
  2. Importing HDF5 Files
  3. 利用matlab读取.h5文件内容
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197410.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java四种引用类型_JAVA引用数据类型

    Java四种引用类型_JAVA引用数据类型今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混。后来在网上查资料,感觉收获颇多,现记录如下。    对象的强、软、弱和虚引用在JDK1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachabl

    2022年4月19日
  • 扩展欧几里得

    扩展欧几里得

    2022年1月28日
  • css绝对定位的参照物是什么_css 清除上定位

    css绝对定位的参照物是什么_css 清除上定位css绝对定位的重新认知所谓的css绝对定位,就是position:absolute;这里记录一个我的错误认知,就是绝对定位的参照物是内容,还是内容+内边距,我一直以为参照物就是内容,但是实际上参照物是内容+内边距看看下面的事例<!DOCTYPEhtml><html><head><metachars…

    2022年10月25日
  • 解决‘E: 无法获得锁 /var/lib/dpkg/lock-frontend – open (11: 资源暂时不可用) ’ 问题[通俗易懂]

    解决‘E: 无法获得锁 /var/lib/dpkg/lock-frontend – open (11: 资源暂时不可用) ’ 问题[通俗易懂]报错无法获得锁/var/lib/dpkg/lock-frontend-open(11:资源暂时不可用)首先查看下ls/var/lib/dpkg/lock-frontend然后删除sudo-r-f/var/lib/dpkg/lock-frontend如果依然报错无法获得锁/var/lib/dpkg/lock-open(11:资源暂时不可用)’删…

    2022年10月7日
  • 手机抓包工具 charles使用[通俗易懂]

    手机抓包工具 charles使用[通俗易懂]转自:https://blog.csdn.net/weixin_42338923/article/details/80500323(我又添加了几句我的使用经验)1、下载charles包、安装https://www.charlesproxy.com/download/2、关闭电脑防火墙【但我的经验是:可以选择先不关闭防火墙试一试,因为我后边再次使用时没关闭防火墙也是可以抓包的)】打开…

    2022年6月6日
  • 时限调度算法给出的调度顺序_时间片轮转法进行进程调度

    时限调度算法给出的调度顺序_时间片轮转法进行进程调度调度算法-时间轮一.背景在我们的业务场景中,经常会使用到定时任务功能,比如定时发送消息,定时执行数据同步,比如之前的文章介绍的分布式事务中的本地事务表方式的解决方案等等,特别是在现在大数据量和分布式服务环境下,定时任务调度越来越频繁,所以对应的定时任务调度的算法实现也越来越完善。在之前的单机环境下,我们可以使用ScheduledThreadPool起一个延迟任务线程池,定时的执行任务,又或者使用spring提供的@Schedule注解配合上cron表达式开启一个定时任务,又或者是lin

    2022年9月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号