学习如何使用MATLAB编写透明且易于理解的代码®,创建intra-operable MATLAB代码与其他语言,与你的社区分享研究工件,包括那些没有许可证,并使用MATLAB科学网关。
不同产品开放科学分为三类旨在使代码透明的,可用和可访问。
我的名字叫Shubo。这是——这个网络研讨会有一个轻微的哲学方面,因为它不是一个算法。但它是关于你如何使你的科学更加开放,和这样做的可能性是什么。好的。让我们跳。在我深入所有的细节之前,您可以使用,我想给你一个很高的水平概述首先为什么MATLAB和开放的科学。因为你可能会问自己,好吧,MATLAB是一种专有的语言。所以如何兼容开放科学?
MATLAB是非常适合开放科学原理。我要给你怎么做。MATLAB语言可能是一个专有,但事实证明,MATLAB的大部分功能,大部分的MATLAB代码,实际上是开放的。它是透明的。你可以打开它无论在MATLAB的许可证在任何文本编辑器和看是做什么,它是如何完成的,甚至得到一个参考。我们的大多数用户,你的大部分时间里,全球大部分的四百万人使用Matlab实际上不关心是什么在Matlab代码。他们关心的是什么,他们做的是使用MATLAB环境。这个著名的工具栏,你都知道。
他们用它来把这些代码,从MATLAB的专有代码,看看,看看,他们使用它。他们使用它们。他们相信他们。他们知道他们的工作。但他们使用它们来构建应用程序和分析自己的数据。MATLAB环境,这种环境使这容易做到,因为你可以点击点和加入相当容易的方式。但是,它不是一个黑盒子。在每一个阶段,你看到这背后的代码,具体分析。和肯定,所有的应用程序中,您构建的分析,不是私有的。这是你的分享。
事实上,我们强烈鼓励你——我要搬我这里的路。我们强烈鼓励你分享你的代码。如果你去到MATLAB工具栏和社区你点击按钮,这将带你到MATLAB的中央,这是MathWorks开放换取MATLAB和Simulink社区。金宝app这包括一个免费的开源工具交流门户。您可以测试您的编码功能。你可以回答的挑战。你可以加入论坛与其他MATLAB用户。所以这是所有关于共享和很多人。
最后,我们知道,当人们从本地桌面转向科学网关超级计算中心、MATLAB需要现在无处不在。这是关于报道。我们在说短暂在研讨会开始之前,在全校推广和institution-wide许可试图这样做,让整个校园在一个许可证的伞。所以每个人都在这些学校,在这些学校可以很容易地共享和协作。如果你不是在全校推广许可的一部分——我们目前有1800个校园许可证。如果你不是其中的一部分,别担心。我会告诉你你能做什么和你的许可证。但它的覆盖面,地理覆盖范围。
然后,MATLAB具有强大的集成功能现在与几个不同的语言,包括Python,这意味着覆盖方法。如果有人你知道是使用一个工具盒用另一种语言,你需要整合,你可以很容易从MATLAB。最后,有持续的支持。金宝app我们的开发人员构建常数在MATLAB支持各种数据格式。金宝app这是相当重要的,因为我们知道,在每一个领域特定的数据文件格式。和更多的数据文件格式我们支持,我们越域覆盖率。金宝app
你可以得到所有的这些在你最喜欢的MATLAB环境中不同类型的数据。这是一个非常高水平的概述为什么MATLAB是兼容开放的科学。我现在打算深入具体
提供特定的特性,您可以使用它们来练习开放科学。首先,我要告诉你如何使用你的数据来讲述一个故事。我将讨论有效地开发软件,源代码控制,谈一谈技巧分享工具和软件。我要谈论从MATLAB中央和重用软件免费下载,文件交换。
我要简要,详细讨论结合MATLAB用户,这些用户并不如何与他们共享代码,合作者。我将讨论与MATLAB建立一个便携软件胶囊,如果你们有听说过码头工人,码头工人的容器中。然后,我要简要提及大计算,大数据,并行计算,讨论MATLAB在浏览器访问。最后,我将讨论在计算和数据在同一个地方。这是我最喜欢的网络研讨会的一部分,因为它直接关系到我所做的。我要讲科学网关。好的。
我试图把这些分成三个垃圾箱,透明,可用和可访问。虽然我承认,这不是一个公平的分类。好的。让我们开始与如何使用您的数据告诉一个故事。现在,我将为您展示的MATLAB代码。他们做同样的事情。在左边,你的传统的MATLAB代码,注释,但仍然静态代码。右边,我们称之为生活的脚本。你认为哪一个更透明和更容易理解当有人试图理解你的工作流程吗?右边的,生活的脚本。 So a Live Script is nothing else than a digital notebook.
它使您能够用MATLAB代码和其他相关输出,和这个相关的输出可以文本解释你所做的,图形,方程,并将它们合并到一个文档。你有用户控件,所以用户——UI控件,代码,这样用户可以相互作用通过改变一些参数。你可以出口到不同的格式,你可以轻松分享。我发现这非常有用,当你想表达你的研究。所以我做了一下在实验室会议,人们不断地问,你做了什么?如何规范化?合作者可以是伟大的。它允许别人实际上与代码进行交互。
有时当你需要上传代码,文档,在一个文档和结果,可以派上用场。现在我将向您展示如何想出一个脚本。这是一个简短的视频。介绍我的MATLAB工作区,这是我的编辑器,编辑器在这种情况下生活。这是我的工作区,这样你熟悉如何组织我的IDE。好的。开始一个新的生活脚本,去家里选项卡,你可以点击新生活的脚本。有更多的比的方法。一旦你这样做,你会有一个脚本。
第二,我要摆脱这些。住脚本不。m文件但.mlx文件。然后你可以去现场编辑器,这是工具栏的工具来让你的生活脚本。首先,你可以去文本,你可以选择一个标题。你可以给你的生活脚本一个标题,所以创建一个简单的脚本。在这种情况下,我们要做一个非常简单的正弦波,没什么奇特的。和你有一些文本解释。
它将振幅和频率,构造一个正弦波。然后,你去点击代码,插入一个小代码块。你可以输入你的代码,这基本上是一个振幅和频率变量,一个时间轴,绘制正弦波。点击运行。它给你的输出,你可以有一个输出。你也可以有一个内联,像我在前面的示例中显示。现在有互动的一部分。
想象一下,有人想改变频率的正弦波。所以他们显然可以改变这个值并重新运行该代码。但是更容易的方法,一个更有用的方法,
要控制和UI控制器来代替它,在这种情况下一个数字滑动条。设置限制,0到20日,通过移动滑动条,用户可以选择任何频率介于0到20赫兹,和输出自动更新。所以就很互动。现在我们要做的其他事情。
我们要做一些标准数据预处理工作。我们要找到极大值,局部极大值。您可以使用任何其他的事情,但这只是一个标准。这些类型的任务,去任务按钮。你会有很多好的即插即用的任务模块,我们从这个调色板选择寻找局部极值和我们在这里插入。这是给你一个GUI。你可以选择你的信号,输入信号,从一个工作空间变量,这将是y,立即把它和输出这极大值检测的结果。
这回到我的观点关于透明度。在每一个点,你可以去这三个点,你可以看看这背后的代码预先编程的GUI。所以你可以学习这是如何做的,你可以自己做。现在你明白了吧。这就是你生活的脚本。你可以把方程,链接,你甚至可以把表的内容。就像一个数字的笔记本,你可以分享你的合作者。现在,如果你感兴趣的更多的生活的脚本,我们已经有了一个脚本从MathWorks画廊。我向您展示在幻灯片上的联系。它有一堆活脚本从不同的学科。
如果你感兴趣的话,去看一看。画廊和一个整洁的生活脚本你可以打开这些活脚本在线在你软件浏览器——你不需要一个许可证和运行它们,并下载文件交换的代码。好的。接下来,让我们来谈谈有效地开发软件。您可以使用源代码控制。和源代码控制做什么——你有一个工作副本在你的桌面,在本地机器上,和你有另一个复制,存储库中,在服务器上或者在云上。在每一个阶段,你的本地副本,当你这么说,这个存储库同步结果,任何合作者可以下载最新版本,代码的同步版本,从远程存储库。
因此,跟踪变化。这可以帮助你有效地协作。和两个最常见的源代码控制功能从Git和Subversion,从GitHub Git。现在你可以用MATLAB代码集成Git和SVN。你可以访问他们的IDE,以及使用此命令从命令行感叹号然后git。好的。你怎么做呢?首先,从IDE,如果你去你的文件夹视图,所以你去家里,布局,显示当前文件夹,右击。你看到源控制菜单。
然后你去点击管理文件。你这样做在你开始一个新项目。然后你得到这个弹出,你可以放入存储库路径。GitHub的地址。它可以是一个本地内部实验室。它可以是一个本地服务器位置。从那刻开始,会发生什么事是这个文件夹将源代码控制之下。每当你做一些事情,你可以去,你可以从这个菜单,但你也可以进入命令行类型,git添加,添加了你所有的变化。Git提交,提交与一个特定的评论。原谅我。
然后git推是什么,把你所有的变化和提交,并送他们到远程存储库。现在,让我们谈谈更多关于共享工具和软件,使用项目和工具盒、共享软件作为一个项目或工具盒。什么项目是包与代码在这个项目的所有依赖项。所以你可以试试这个。你可以尝试一个例子,
matlab.project。e xample.timesTable。如果你输入到命令窗口,那么你应该弹出的MATLAB工具栏项目。
在项目栏,你会看到一个依赖分析仪。如果你点击依赖分析器,你看到这样的图。这个图表显示了你是哪个代码包依赖于其他的代码片断。边,你甚至得到所有的产品的列表,所有的MATLAB工具箱,你需要运行这个包。下载188bet金宝搏
所以你可以检查,如果你有一切。如果你想分享一个项目,然后分享它的一个好方法是通过使用一个工具箱。什么一个工具箱是需要一切,吐出了一个可执行的,所以用户可以安装你的整个包使用该可执行文件,与任何程序很像你。
为此,很简单。你继续附件按钮,你点击包工具箱,然后,将你一套非常简单的点击步骤,最后吐出工具箱。现在,你已经开发了一种代码有效使用Git源代码控制你的合作者。你已经进入一个项目。你分享它在哪里?
现在,有很多平台分享。也许你不知道的一个平台是MATLAB文件交换。MATLAB中央文件交换的一部分。文件交换存储库是一个平台,代码存储库。你可以获得、共享和重用的免费工具。
目前大约有40000个可用存储库。这些都是由该领域的专家与成千上万的下载。这是文件交换是什么样子。所以每一个工具箱,用户在网站上上传。你有一个不错的搜索栏,纪律和学科的分支。
所以你可以磨练在可能的工具在您的特定的研究领域。你也可以过滤工具按类型,因此仿真软件模型和工具箱和应用。金宝app和许多你可能分享你的工具箱在GitHub上。如果你这样做,你可以联系他们文件交换现在不用工作的两倍。
您可以简单地链接GitHub库文件交换。用户可以使用这个链接下载从你的GitHub库,它只会给你更多的可见性对你的工具箱。所以我强烈建议工具箱作者去尝试文件交换。好的。现在让我们来谈谈与non-MATLAB用户连接。这是真正分享MATLAB。让我们面对现实吧,不是每个人都有一个许可证。
MATLAB对每个人来说都不是选择的工具。所以你做什么当你在一个项目工作时不要使用MATLAB的合作者。第一个场景是你开发软件,或者你是中心的项目,你有一堆的人取决于你的代码,或者谁想要使用你的代码,他们没有一个MATLAB许可证。
有很多的可能性,这一点取决于这种共享的时间框架。第一个是短期内,30天。如果有人的地方没有一个MATLAB许可证,并简单地需要运行您的代码在他们的数据一次,那么我认为最简单的方法就是让他们简单地下载一个免费的MATLAB审判,30天,并运行代码。好的。
然而,这是有限的使用。最常见的场景是一个扩展项目,其中几所大学一起协作完成一个学术项目。现在你能做什么学术项目是你可以分享你的许可。基本上这是开放教育机构。
这就叫做第三方访问。发生了什么是你的老板的许可从一所大学,许可或个体执照,你可以打开。你可以把这些给你的合作者的凭证,然后他们可以访问您的许可,并使用MATLAB。你唯一需要小心是MATLAB使用在您的硬件。所以你必须给他们一些
访问您的硬件。或者他们可以访问教授你的身边。但是,使很多的灵活性当工作在这些合作项目。
第三个选择是长期的。说你已经开发了一个应用程序或者你已经开发了一个分析,和你想要的这是对每个人都访问了很长一段时间。你可以尝试的一件事有MATLAB Web应用程序。很简单。你去应用程序设计师。然后你只是你的MATLAB应用程序转换为一个Web应用程序通过点击分享和点击Web应用程序。
和它的作用将应用程序转换为一个应用程序可以驻留在web服务器和每个人,无论他们是否有许可证,可以拨在web地址和与服务器进行交互。现在让我们来谈谈与non-MATLAB用户连接在一个稍微不同的背景下,这是用户与其他软件。
所以前面的图标我给你关于你的中心和其他没有许可证是一个场景。更常见的情况是当你在一个项目开发软件图标,每个人都在一起工作。有人MATLAB,有人使用Python,有人使用Java,有人是一个c++。好消息是,MATLAB集成,集成了很多其他语言。
您可以从MATLAB调用其他语言库,包括Python。也可以反过来。所以你可以从另一个调用MATLAB语言。再一次,有很多不同的语言支持。金宝app
在这里我应该提到的RESTful API,为web服务和web,读取数据非常有用,如果你访问一个在线数据库。分享MATLAB在Python,实际上有两种方法可以做到这一点。你可以直接与MATLAB接口,我要给你的东西。你也可以把你的MATLAB代码并把它作为一个Python包,让它在Python。
这是一个演示,向您展示如何从内部访问MATLAB Python。这里,我有我的MATLAB工作区与一个变量y,我MATLAB命令窗口。这是Windows PowerShell,但是您可以使用任何其他命令行界面或Python IDE。
让我们进入Python。然后你应该做的第一件事就是在导入matlab类型。引擎,导入MATLAB引擎。所以你可以从Python内使用MATLAB功能。然后到matlab.engine.start_matlab吧。让我们使用中,一个变量,作为这个类的一个实例。现在你有eng,你可以从eng调用MATLAB函数。
让我们调用MATLAB函数。我们叫randn。让我们给它正常的输入像在MATLAB和如果你那样做,那么你看到的数据类型是一个MATLAB数据类型,翻倍。现在让我们放弃这个命令。我将向您展示如何连接到一个正在进行的MATLAB会话。
要做到这一点,在命令窗口中,键入matlab.engine.shareEngine。和你在做什么你分享你当前MATLAB会话,你给它一个名字——Python。现在从Python,您可以访问会话,包括其工作空间。现在不是说,start_matlab,让我们去说,connect_matlab。
让我们给它的名字我们想要连接到的会话,这是我的会话。当我们这样做,我们将连接到这个特殊的会话。现在我们在工作区中可以访问的变量。我们使用eng再次这么做。我们使用工作空间的方法来访问工作区。
和方括号内,您可以输入想要访问的变量的名称,y在这种情况下。让我们把它放在一个变量在Python中。现在我们可以继续玩。你甚至可以这样情节,从Python使用MATLAB绘图功能。
所以你可以调用图使用这种方法,只是像通常所做的那样。所以你给它一个名字。让我们称之为CalledFromPython,所以我们知道这是这个数字其实从Python调用。如果你这样做,你会得到一个MATLAB窗口。你可以在这个窗口开始策划。
让我们绘制变量y在这个窗口中,使用标准的MATLAB绘图命令,所以颜色和线型。和你去你已经做了一些从Python MATLAB绘图。这只是冰山的一角。有很多其他的功能。
这是一个备忘单放在一起的一些重要的事情你应该知道当你做这种MATLAB Python集成。如果你发现它真的有用,看看吧。查看产品页面。有很多更多的信息以及视频。好的。现在我们去一点到使用共享数据和重用,再现性的研究。
首先让我们来谈谈创建便携软件胶囊,Matlab在码头工人容器。所以根本问题是无论如何当你编写代码——抱歉。无论你如何编写代码,你经常得到这个情况在某种程度上,许多年以后,当你想重用代码,你找出你的代码不工作。
这是一个大问题的研究,再现性危机和所有这一切。然后你会有其他问题。你旧版本可能不支持,也许您的操作系统的改变,DLL是失踪,金宝app或缺少的依赖关系。你可以在这种情况下你可以使用一个码头工人容器。
对于那些不知道这一点,一个码头工人容器实际上是一个胶囊或一盒,你的代码,它需要运行的数据,所有的依赖关系,甚至操作系统的某些方面在这个盒子包装。你可以下载这个盒子,这个容器,从码头工人中心,你能火起来,它就会运行。需要一些资源从你的主机操作系统,它将运行。优点,现在你有一个便携式容器中运行,你去任何地方。便携式,可再生的,可重用。现在它有MATLAB。
所以如果你想在一个码头工人MATLAB容器,下面的链接给你链接到GitHub库的体系结构来构建自己的码头工人文件。如果你感兴趣看到MATLAB和码头工人在线运行,我要与你们分享一个例子从代码。海洋是一个科学网关代码。他们鼓励你,一旦你有了一个出版物,上传的代码与出版,相关的想法,他们会为你装在容器中,并保持他们的网站,和任何人都能去旋转容器,并运行该代码。这是试图解决再现性的挑战。
所以如果你去代码海洋的网站和你去探索,你看到这些集装箱码头工人,胶囊的称呼它,与主题领域,有时,通常与它相关的出版物。这里你看到不同的胶囊。你看到一些c++, MATLAB和一些Python语言。如果你点击其中一个胶囊,然后带你去一个IDE的MATLAB代码。左边,MATLAB,抱歉这是有点太快了。在左边,MATLAB的m文件。这是编辑器。
在这里,你有这个东西叫做重复运行。如果你点击复制运行,然后启动这个容器,它旋转这个容器。现在你要看看会发生什么。一旦容器旋转起来,你会看到MATLAB命令行。
然后它吐出了特定的计算结果。所以实际上是非常好的代码复制的方式。当然,如果你不想在网上运行,容器,你可以简单地下载这些文件在您的本地机器,玩。好的。这是MATLAB在集装箱码头工人的想法。这是一个实际的例子。
现在,我想简要提及大计算和大数据。在许多领域的研究,数据呈几何倍数增长。20年前,当我开始我的博士,在神经科学中,我们从一个电极记录,也许几个电极。今天的人们有录音芯片有数百个电极,他们把一些大脑的芯片。
和许多其他领域的我肯定这是真的。所以作为数据变成了大,数据处理成为一个问题。甚至当我们在当地实验室工作站,我们使用更多的计算资源。我们可能会使用多核CPU,或者我们使用GPU。
我们很多人都使用一个集群等设施。它可以on-prem。它可以是一个超级计算中心或一个惠普中心。它可以一个云。它可以是私有云,像AWS和Azure。我们处理大数据。你能做什么和MATLAB并行计算工具箱和MATLAB并行服务器是你有一个轻松地扩大您的代码的并行化方法。
所以你需要做出的改变。你不需要再次重新编码,重写代码部署在集群。两个点分,您可以将其部署。与MATLAB并行服务器,在服务器端,服务器请求资源在一个智能代码可以运行在最优的方式。
你现在可以访问所有可用的集群,特定的服务提供给你。,你可以做一些改变代码就像我说的。如果并行计算是你感兴趣的,我们有很多的信息,包括视频和演示并行计算,您应该检查出来。这里有一些让你开始的链接。
现在,我想谈谈从浏览器访问MATLAB。所以这些天,它是人们基于浏览器的工作变得相当普遍。我们都是远离工作站COVID危机期间。现在,您可以通过浏览器访问MATLAB甚至在线仿真软件MATLAB和Simul金宝appink在线。
任何网络浏览器允许你这样做。如果没有安装,您可以在您的浏览器进行协作。你可以同步数据与云存储调用MATLAB开车。你甚至可以举办自己的MATLAB在网上,我将向您展示的幻灯片。这是MATLAB在网上是如何工作的。你在浏览器窗口中输入matlab.mathworks.com。
当然,你需要有一个许可使用MATLAB在线。然后你得到了MATLAB IDE内部浏览器。你可以做一切你可以与正常MATLAB。你可以在图形、部署应用程序,您可以运行脚本。你可以继续你的附件链接获得文件交换,实际上导入文件交换工具,并安装它们。
和你可以把数据从您的本地机器上MATLAB开车。这是给你们。现在的视频是显示MATLAB开车。然后你可以在线访问MATLAB从MATLAB和访问您的数据。好的。所以最后一点我想去和你旁边有计算科学数据网关。
那么什么是科学网关吗?科学网关为科学和工程提供对资源的访问。这些资源可以是数据,它可以是代码,它可以是教学资源,也可以计算。,从本质上说,它的工作方式是组科学家都通过一个在线门户登录。
然后这个在线门户是一个管道,是一个接口,不同类型的资源。数据库,数据存储库,它可以计算资源,也可以是回购的软件工具。这是科学的网关。
优点是,你不需要携带大量的数据与你;B,它是负担得起的,访问;它真的可以帮助你轻松分享事情,重用研究繁殖输出。你所要做的就是如果你有一个最喜欢的科学网关,你想MATLAB,首先,与我们取得联系。我们会帮助你。和科学网关所能做的就是成为一个托管提供商,这意味着它有MATLAB的所有资源,并使其用户使用MATLAB。
和我将给你一个科学网关实际上这样做。Hydroshare CUAHSI科学网关,这是北美协会的水解。这些人都是学习。这是Hydroshare的网站。,看,这是一个在线协作环境,共享数据模型和代码。基本上,如果你走进Hydroshare,得到一系列的数据。这是一个例子的数据资源。它一个特定的分析一个特定的数据文件。你可以去开,你可以选择MATLAB在线为您的数据结果。
这是它旋转MATLAB在网上浏览器的一个实例,你可以看一下资源,在MATLAB分析。在这种情况下,如果你看一下网址,它说,matlab-online.cuahsi.org。所以在这种情况下,这个科学网上网关实际上是托管MATLAB。
和你的科学网关也可以这样做。所以,如果你认为这是有趣的,请与我们取得联系。好的。所以总的来说,我经历了所有这些不同的——我把这在一开始,所有这些不同的点。我已经试图掩盖他们的产品提供给你,你可以使用最优来做这些事情。
我希望有一些东西在你发现有用的这个列表,发现新的。在我们结束之前,最后一张幻灯片,我只想说,我看到你生活在我的视力或你的研究受到所有这些工具的影响。我认为这些帮助你全球合作。我想我看到,我想象你的工作流程是使您能够参与全球合作。
有几部分的工作流程,这些工具可以派上用场。您可以创建透明代码,分享它,使用它在文件交换,做所有的事情,很多功能。Institution-wide许可可以涵盖很多机构,因此您可以轻松地在这些机构之间交换信息。
如果你不是,即使你的合作者实际上没有许可证,灵活的许可意味着您可以打开您的许可和第三方访问和共享他们——与你的合作者分享。甚至可以把你的许可与你当你访问远程设备。它可以是一个超级计算中心。它可以是一个科学网关。最后,当你移动时,MATLAB可以在越来越多的地方,可以在科学网关,通过使用MATLAB和Simulink浏览器在线访问。金宝app希望所有的这些东西加起来可以让你的生活一点更容易合作。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。