私は、プログラミングではありませんが、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
正規表現に頼らずに、これを達成するためのより効率的な方法はありますか?