Can't create hdf5 file using batch scripts.
2 次查看(过去 30 天)
显示 更早的评论
I'm trying to create an hdf5 file to store many large arrays. When I run my test script the lines,
file_name = strcat('/home/usr/test_results1');
h5create(file_name,'variable',[10, Inf],'ChunkSize',[10 1]);
work just fine. When I execute the script as a batch job I get a failure: "Unable to create file with specified filename. Filename may have unsupported characters".
Any thoughts?
0 个评论
回答(2 个)
per isakson
2017-10-20
编辑:per isakson
2017-10-20
The function, strcat, has no effect in the statement
file_name = strcat('/home/usr/test_results1');
which is equivalent to
file_name = '/home/usr/test_results1';
I guess your problem is caused by the relative path; your current path isn't the same when you run interactively and with the script. The function, cd, shows the current path.
0 个评论
Mohammad Abu Zafer Siddik
2019-8-1
编辑:per isakson
2019-8-2
Hi,
I am getting the same error; Here is my code.
filename='A_B_C_1';
filename_r=fullfile([filename '.h5']);
filename_r(regexp(filename_r,'[_]'))=[]; % remove "_" from filename
fcpl = H5P.create('H5P_FILE_CREATE');
fapl = H5P.create('H5P_FILE_ACCESS');
fileID=H5F.create(filename_r,'H5F_ACC_TRUNC',fcpl,fapl);
Would you guys have any idea how can i solve this issue?
Error:
Error using hdf5lib2
Unable to create file with specified filename. Filename may have unsupported characters.
Error in H5F.create (line 40)
file_id = H5ML.hdf5lib2('H5Fcreate', varargin{:});
Thanks in advance
3 个评论
Walter Roberson
2019-8-2
Instead of using regexp to remove the _ it would seem to make more sense to use
filename_r(filename_r == '_') = [];
Is that the exact filename you are using? The code works on my system.
Mohammad Abu Zafer Siddik
2019-8-2
Thanks Walter, I really appreciate it.
Yes. Sometimes it works sometimes it don't work. Now it works for my system as well.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 HDF5 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!