我对 Matlab 相当陌生,虽然不是编程。我正在尝试散列一个字符串,并取回一个作为该字符串唯一 ID 的值。我正在使用 FileExchange 中的这个DataHash函数,它将哈希作为整数向量返回。到目前为止,我发现将其转换为单个数值的最佳解决方案是:
hash_opts.Format = 'uint8';
hash_vector = DataHash(string, hash_opts);
hash_string = num2str(hash_vector);
% Use a simple regex to remove all whitespace from the string,
% takes it from '1 2 3 4' to '1234'
hash_string = regexprep(hash_string, '[\s]', '');
hashcode = str2double(hash_string);
一个不依赖于 DataHash 的可重现示例:
hash_vector = [1, 23, 4, 567];
hash_string = num2str(hash_vector);
% Use a simple regex to remove all whitespace from the string,
% takes it from '1 2 3 4' to '1234'
hash_string = regexprep(hash_string, '[\s]', '');
hashcode = str2double(hash_string); % Output: 1234567
有没有更有效的方法来实现这一点,而不诉诸正则表达式?