我有一个HDF5文件,其中的定长数据集包含定长字符串。每个字符串在其中的某个位置都包含一个空终止符,其他语言(例如Python,C等)可以理解该符号以该字符串的结尾表示,并且空终止符以外的字符均无效且不应被读出。但是matlab的h5read函数似乎并不了解这一点。它总是为我提供整个字符串,包括以空字符结尾的部分之后存在的所有垃圾字符。
我似乎找不到一个明显的函数来删除null终止符之后的元素,但感觉这应该存在。举例来说,这是我的一个字符串可能的样子:
['actual string' double(0) 'junk characters after null termination']
是否有一个函数可以在null终止符后删除所有内容,还是我自己需要做?编写起来应该很容易,但是如果存在的话,我想使用一个预先存在的Matlab函数。像这样的东西可以工作,但是感觉很笨拙/丑陋:
x = x(1:find(x == 0, 1) - 1)
答案 0 :(得分:1)
从16b开始,您可以执行以下操作:
extractBefore(x,char(0))