迭代Matlab中的唯一值

时间:2015-03-06 17:00:58

标签: matlab text brackets curly-braces word-frequency

我一直在尝试关注this answer,以便从给定的单元格数组中获取唯一的字符串。但是,在迭代这些值时遇到了麻烦。我试过循环如下:

[unique_words, ~, occurrences] = unique(words);
unique_counts = hist(occurrences, 1:max(occurrences));

for a=1:numel(unique_words)
  word = unique_words{a}
  count = unique_counts{a}
  result = result + a_struct.(unique_words{a}) + unique_counts{a}
end

当尝试引用这样的项目时,我收到错误:

  

来自非单元数组对象的单元格内容引用。

将大括号更改为unique_couts的圆括号会产生错误:

  

引用不存在的字段'N1'。

unique_wordsunique_counts都更改为圆括号会产生:

  

动态结构引用的参数必须求值为有效的字段名称。

我如何迭代唯一的结果?

1 个答案:

答案 0 :(得分:3)

unique_words是一个单元格数组。 unique_counts是一个向量。因此,应使用大括号访问unique_words,使用圆括号访问unique_counts。在这种情况下,您遇到的错误与a_struct(问题中未定义)没有相应字段,而不是访问方法有关。