MATLAB:将单元格数组字符串映射到int数组

时间:2017-03-22 22:58:27

标签: matlab mapping cell-array weekday

我有一个名为weekDays{}的单元格数组(长度约为1M),其中每个单元格索引是一周中某一天的字符串Sunday...Saturday。我试图创建一个整数数组,它是星期几到整数的映射,例如Sunday -> 1, ..., Saturday -> 7。我创建了一个这样的地图:

dowKeys = {'Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'};
dowVals = [1,2,3,4,5,6,7];
dowMap = containers.Map(dowKeys, dowVals);

现在我如何在weekDays单元阵列上使用此地图?在转换带dowMap的单元格条目之前,我似乎无法使用char,但是当它转换为矩阵时,它会为某些字符串填充空格,以便我的映射不再有效。我的目标是使用此整数数组并使用dummyvar()将其转换为单热矩阵。

1 个答案:

答案 0 :(得分:0)

看起来这样有效,但我有兴趣听听更好的方法:

dowOneHot = dummyvar(cell2mat(cellfun(@(x) dowMap(x), DayOfWeek, ...
    'UniformOutput', false)));