开发区域

使用MATLAB先进的软件开发

开放和可扩展

MATLAB是一个开放的、可扩展的平台,其独特之处在于其与一流技术相吻合的能力。打开,指的是MATLAB的很多功能都是在MATLAB文件中提供的,这些文件的源代码可以研究。社区推动贡献文件交换多年来已经成长为一个竞争对手在DVD上的代码的规模。可扩展的,是指Matlab与其他语言堆栈集成的能力。

MATLAB的可扩展性提供了对C/ c++、Java、。net、Perl、Python等多种功能的访问。一些第三方库(如Xerces™(用于处理XML))已经融入了MATLAB产品本身。

MATLAB旨在可扩展,例如,MEX接口提供对几乎所有FORTRAN和C / C ++功能的访问,以表达数字算法。

利用MATLAB的可扩展性-三字评分

Matlab的可扩展性如何帮助您在日常生活中?

一个直接的问题和对这个问题的答案在这个博客的内容创作中呈现出来。你可能已经注意到在这篇博文的最下面有“在MATLAB中发表”。

这个网站上的博主经常使用Matlab来创作他们的内容,我也不例外。一种拼写检查程序在写作时总是有帮助的。由于我使用MATLAB编辑器,因此立即需要通过提供从MATLAB环境本身方便地访问拼写检查来简化我的工作流程。

拼写检查器可以让其他用户受益,所以我很快就列出了一份需求清单。一个MATLAB拼写检查器需要:

  • 轻巧和免费(即,在Matlab的大多数版本中可以访问)
  • 跨平台(即使用我们的Windows, Mac和Linux版本)
  • 多语言(即,由于我们在全球范围内拥有超过一百万用户,请不要假设使用英语)
  • 可定制(即允许修改Word Lists)
  • 易于构建和使用(即本身不会变成一个庞大的项目)

第一步是确保我没有重复发明轮子。一个快速文件交换搜索和后续的互联网搜索都一无所获。

没有找到我需要的,我决定通过利用现有的技术和一点MATLAB的努力来构建一个拼写检查器。我把扩展MATLAB功能称为“三个单词的分数”,因为它用最少的努力在生产力上获得了巨大的增量。

通过重新发明轮子将其放在一起

考虑到跨平台的需求,我很快就放弃了。net选项,转而使用带有干净API的Java库。Jazzy有一个老旧的代码库,但有一个干净的API和一套完整的语言字典,非常适合我的需求。这让我可以用支票跨平台的轻巧和免费要求。

jazzy API将通过Java中的简单包装器借入,允许清洁调用界面。要构建我们的Java类(SpellCheck.java),我解雇了一个Java IDE并导入了来自Sourceforge的Jazzy库

/ * * /包装规范包com.mathworks.spellcheck;/* Jazzy Imports */导入com.swabunga.spell.eengine.spelldictionary;导入com.swabunga.spell.eengine.spelldictionaryhashmap;导入com.swabunga.spell.Event.Spellcheckevent;导入com.swabunga.spell.Event.SpellcheckListener;导入com.swabunga.spell.Event.SpellChecker;导入com.swabunga.spell.Event.StringWordTokenizer;/* Java导入*/进口java.io.File;进口java.util.Iterator;进口并不知道;

构建一个简单的java类,实现事件的侦听器。

/***此类提供MATLAB回调以检查评论的拼写*在代码中。*/public class SpellCheck implements SpellCheckListener {private SpellChecker;/*设置字典的方法*/public void setDictionary(String dictFile) {try {SpellDictionary dictionary = new SpellDictionaryHashMap(新文件(dictFile));new spellCheck(字典);spellCheck.addSpellCheckListener(这个);} catch(异常e) {e.printStackTrace();}}/ *检查拼写的方法* /public void checkSpelling(String inputText) {try{拼写检查。checkSpelling(新StringWordTokenizer (inputText));} catch(异常e) {e.printStackTrace();}}/ *事件侦听器去这里* /}

我们有一个方法来设置特定于语言的字典,还有一个方法来检查输入字符串的拼写。Jazzy库随后会触发一个我们采取行动的事件。事件监听器是这样的:

/ *事件侦听器填充建议并根据需要回声* /public void spellingError(SpellCheckEvent事件){String message = new String("MISSPELT WORD: " + event. getinvalidword ());/ * echo到命令提示符* /列表建议= event.getSuggestions();system.out.println(消息);if(建议.size()> 0){for(迭代器bulistedword = contrantions.iterator(); bulistedword.hasnext();){system.out.println(“\ tsugborted word:”+ bulistedword.next());}} else {system.out.println(“\ tno建议”);}}

这个Java模块的第一个版本只是向命令窗口返回拼写错误和建议。在大多数java开发工具中,编译java代码并将其打包到JAR文件中通常是一个简单的单击操作。

编译:BUILD jar: I:\Work\SpellChecker\lib\java\MATLABSpellCheck\dist\MATLABSpellCheck.jar: BUILD SUCCESSFUL(总时间:1秒)

MATLAB是建立在Java平台上的,因此启用这个模块只需要一行代码就可以将其添加到动态Java类路径中。我在MATLAB中进行了基本的拼写检查。

javaaddpath (我:\ \工作检查\ lib \ java \ MATLABSpellCheck \ dist \ MATLABSpellCheck.jar ');

测试出来

为了测试它,我从jazzydicts sourceforge存储库其中包含各种支持的语言。金宝app然后,在Matlab:

%让matlab发布爵士乐进口com.mathworks.spellcheck。*;%设置默认语言。dictFile = ('en_usx.dic');创建一个花哨的拼写检查器解释清楚obj = ();obj.setDictionary (dictFile);%检查输入字符串的拼写obj.checkSpelling (“Yello Worrld”
MissPelt Word:Yello建议单词:Jello建议单词:大提琴建议单词:大提琴建议单词:Hello Misspelt Word:Worlld建议字:世界

只需要多几行代码就可以将其包装成一个易于使用的MATLAB类,用于检查编辑器的内容。

随着我能够检查存在的要求多语种易于使用的。我将像Matlab等的常见词添加到我本地词典文件中,并继续改善它。

模块本身比显示了扩展MATLAB平台的一种方法的技术不太重要。我决定将这篇文章保持一个单一,简单的例子来描述Matlab在那里利用其他技术的能力。我们计划在即将到来的帖子中讨论如何在即将到来的帖子中生成用户友好的Matlab界面。

总之,MATLAB的功能可以通过第三方技术加以补充和加强,以提供单一的内聚用户体验。

MATLAB也可以为其他平台带来强大的功能,但这完全是另一个话题。




发布与MATLAB®R2015B

|
  • 打印
  • 发电子邮件

评论

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。