【问题标题】:Matlab Check elements one at a timeMatlab一次检查一个元素
【发布时间】:2013-11-21 01:30:09
【问题描述】:

我想根据字典文件逐一检查数组中的单词,最简单的方法是什么?

例如

word = nchoosek('london' , 3)

我想检查生成的 3 个字母单词中的每一个是否都在字典文件中。

例如

dictionary(word)

谢谢。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    如果您有要检查的单词元胞数组,则应使用ismember。所以,如果你有一个字典数组dict 和一组单词words,你会使用

    check = ismember(words,dict);
    

    其中check 类似于[0,1,1],如果第一个单词不在字典中,但其他两个单词在。

    编辑:

    我猜dictionary 是一个函数?对不起,我第一次没有意识到这一点。在这种情况下,从this 借用另一个问题的答案,您可以执行以下操作:

    dict_fun = @(word,trash)dictionary(word);
    check = bsxfun(dict_fun,nchoosek('london',3),1);
    

    【讨论】:

    • 谢谢。问题是字典是一个一次只接受一个单词的文件,所以这是行不通的。
    • 是否可以将字典加载到单元格数组中?例如,在我的 linux 发行版上,我可以使用 fid=fopen('/usr/share/dict/words');dict = textscan(fid,'%s');fclose(fid); 加载单词字典,然后我就可以按照我上面描述的方式使用它。
    • 不,唯一的方法是检查一个单词是否在字典中,用语法字典('word')一个一个地输入。所以我需要创建一个 for 循环来以某种方式检查使用 nchoosek 生成的每个单词?
    • 对不起,我没有意识到dictionary 是一个函数。请参阅我修改后的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    • 2014-08-16
    • 2016-06-29
    • 1970-01-01
    • 2020-07-27
    • 2017-08-04
    • 1970-01-01
    相关资源
    最近更新 更多