我目前在 MATLAB 中有一个包含序列号列表的单元格数组。序列号基本上是没有任何特定结构的字符串 - 所以我的单元格数组类似于:
序列号 = {'serial1'; '序列1'; 's2'; '序列31010'}
鉴于 serial_numbers 中的每个唯一字符串对应于不同的项目,我想为它们中的每一个分配一个整数值......所以我可以改变
序列号 = {'serial1'; '序列1'; 's2'; '序列31010'}
进入
new_serial_numbers = [1;1;2;3]
现在,我通过使用 unique 和 strcmp 函数来做到这一点,如下所示
unique_serial_numbers = unique(serial_numbers);
new_serial_numbers = nan(size(serial_numbers));
for i = 1:length(unique_serial_numbers)
new_serial_numbers(strcmp(serial_numbers,unique_serial_numbers(i))) = i;
end
当然这对于大型来说真的很慢,我想将每个序列转换为整数值。有没有更快的方法来做到这一点?