在 Matlab 中迭代唯一值

Iterating Over Unique Values in Matlab

我一直在尝试遵循 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

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

Cell contents reference from a non-cell array object.

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

Reference to non-existent field 'N1'.

unique_wordsunique_counts 都更改为圆括号产生:

Argument to dynamic structure reference must evaluate to a valid field name.

如何迭代 unique 的结果?

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