0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

不止可列表功能:Threaded介绍

工程师邓生 来源:哲想软件 作者:哲想软件 2022-09-16 09:49 次阅读

距离Mathematica及现在的Wolfram语言的初次发布已经34年了。这些年来,我们一直在积极努力地继续建设,增加越来越多的功能,并稳步扩展计算范式的领域。

最近几年,我们已经建立起了一种节奏,大约每年可以交付两次我们开发工作的成果。在2021年12月13日,我们发布了13.0版本。而现在,只在大约6个月之后,我们就发布了13.1版本。如往常一样,尽管这个版本只是一个“.1”,但它依然有很多新的(以及升级的)功能。其中有一些功能,我们已经研究了许多年,现在终于可以享用其成果了。

对我来说,看到每个新版本都能传达出我们想要的内容总是让人激动的。在13.1版本中,我们有90个完整的新功能,同时有203个大量更新的现有功能。除了特定功能中出现的内容以外,13.1版本还包括用户界面和编译器等方面的重要新功能。

现在的Wolfram语言包含了广泛的功能。但是,它的巨大能量并不仅仅来自于它所包含的内容,也来自于其包含的所有内容是如何连贯地结合在一起的。近36年来,我一直将维持这种连贯性作为我自己的个人责任。这项工作既需要高度的注意力,也需要大量深层的脑力工作。但是在我日复一日使用着Wolfram语言时,我骄傲于所取得的成果。

过去四年中,我一直在分享“幕后工作”,展示我们是如何取得这一成果的——通过直播Wolfram语言设计评审会。这是前所未有的开放程度——同时与社区进行互动。在设计13.1版本时,我们进行了90场直播,持续时间超过96小时。在开放我们的流程时,我们不仅向公众展示了为13.1版本所构建的内容,而且还说明了构建它的原因以及是如何做出有关决策的。

But,OK, so what finally is in Version 13.1? Let’s talk about somehighlights….

那么,在13.1的最终版本中到底有什么新内容?接下来我们讲讲一些重点……

不止可列表功能:Threaded介绍

从Mathematica和Wolfram语言的开始,我们就有了可列表功能的概念:例如,如果添加两个列表,它们对应的元素将被添加:

53575c56-3556-11ed-ba43-dac502259ad0.png

这一机制非常方便,基本上做到了你想要它做的事。而且35年来,我们都没有想过要扩展这个功能。但如果仔细看看写出来的代码,我们会发现,有一些部分基本上实现了类似可列表的功能,但稍微更加通用一些。在13.1版本中,我们有新的符号结构:Threaded,可以让您轻松、有效地使用可列表功能。

试想:

5380a660-3556-11ed-ba43-dac502259ad0.png

这个列表使用了普通的可列表功能,有效计算为:

53b6d7ee-3556-11ed-ba43-dac502259ad0.png

但是,如果你想“降低一个层级”并将{x,y}插入第一个列表的最底部怎么办?这种情况下可以使用Threaded来执行该操作:

53d28b9c-3556-11ed-ba43-dac502259ad0.png

Threaded本身只是一个符号包装:

5406fbde-3556-11ed-ba43-dac502259ad0.png

但是,只要它出现在一个具有Listable属性的函数里——比如Plus,即说明可列表的属性应该应用在Threaded函数内指定的内容在最低层级“线程化”之后。

下面是另一个例子。先创建一个列表:

54260f56-3556-11ed-ba43-dac502259ad0.png

那么,我们如何将每一个元素乘以{1,–1}?我们可以这样做:

544a51b8-3556-11ed-ba43-dac502259ad0.png

但现在,我们有了Threaded函数,所以可以仅表示为:

5470de00-3556-11ed-ba43-dac502259ad0.png

你可以将Threaded作为任何可列出函数的参数,而不仅仅用于PlusTimes

5495c1b6-3556-11ed-ba43-dac502259ad0.png

你可以将Threaded和普通的可列表属性一起使用:

54be3d62-3556-11ed-ba43-dac502259ad0.png

你也可以同时使用多个Threaded

54e48c06-3556-11ed-ba43-dac502259ad0.png

另外,Threaded得名于另一个函数Thread,这一函数明确地执行“线程”功能,比如:

550c2504-3556-11ed-ba43-dac502259ad0.png

默认情况下,Threaded会一直插在列表的最低层级:

55377146-3556-11ed-ba43-dac502259ad0.png
5598c9dc-3556-11ed-ba43-dac502259ad0.png

下面是用如上所述的方法使用Threaded的“现实”案例。3D彩色图像中的数据由RGB值三元组的rank-3数组组成:

55ba83b0-3556-11ed-ba43-dac502259ad0.png

这将每一个RGB三元组乘以{0,1,2}

55f24822-3556-11ed-ba43-dac502259ad0.png

大多数时候,你或许想使用普通的可列表属性,在列表的最高层级进行运算;或者你只想使用Threaded的默认格式,在列表的最低层级进行运算。但Threaded有更加普遍的格式,使用这种格式,你可以明确想要在哪个层级运算。

下面是默认案例:

56231614-3556-11ed-ba43-dac502259ad0.png

下面是第一层级,就像普通的可列表属性功能:

5670e8a8-3556-11ed-ba43-dac502259ad0.png

以下是插入第二层级:

5698d7fa-3556-11ed-ba43-dac502259ad0.png

Threaded提供了非常便捷的方法,可以进行所有种类的数组组合操作。如果目标对象本身的“插入”有多重层级,那么就会出现更加复杂的情况。这种情况下,默认的操作就是将插入元素的最低层级与被插入元素的最低层级对齐

56c27db2-3556-11ed-ba43-dac502259ad0.png

下面是“普通可列表属性”的表现:

56e48a42-3556-11ed-ba43-dac502259ad0.png

对于我们在此处查看的数组,默认行为等同于:

5718c7f8-3556-11ed-ba43-dac502259ad0.png

有时,把数组写到外面可能更加清晰,比如以下格式:

5757ec80-3556-11ed-ba43-dac502259ad0.png

这表明,Threaded中的第一级数组,与数组外的第二级数对齐。通常来讲,默认情况等同于–1→ –1,即表明在Threaded中,数组内的最低层级应该与数组外的最低层级对齐。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Wolfram
    +关注

    关注

    0

    文章

    16

    浏览量

    7710
  • 编译器
    +关注

    关注

    1

    文章

    1618

    浏览量

    49060

原文标题:Wolfram语言与Mathematica13.1版本上线(1)

文章出处:【微信号:哲想软件,微信公众号:哲想软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    智能家居之旅(14):安信IoT Blufi配网工具新功能介绍

    今天给大家介绍一下小程序配网工具-安信 IoT,近期刚发布了新的版本,新增了服务器地址配置的功能。这个新功能,给我们带来了不少便利,特别是 HomeAssistant 固件使用这一块
    的头像 发表于 08-27 16:22 378次阅读
    智能家居之旅(14):安信<b class='flag-5'>可</b>IoT Blufi配网工具新<b class='flag-5'>功能</b><b class='flag-5'>介绍</b>

    示波器万用表功能调整方法

    示波器和万用表是电子测量领域中非常重要的两种仪器,它们在电路设计、调试和故障诊断中发挥着关键作用。然而,由于示波器和万用表的功能和操作方式存在差异,因此在使用过程中需要进行适当的调整以满足不同的测量
    的头像 发表于 08-09 15:02 837次阅读

    Labview下拉列表显示问题

    问题描述: 数据采集后保存在文件夹内,文件夹内的数据文件超过了8万个。在回放数据时,用罗列文件夹函数功能,把文件夹内的8万多个 文件名一次性读出来,放在下拉列表里。在主界面的下拉列表里能看到所有
    发表于 05-29 12:27

    中国仪表功能材料学会电子元器件关键材料会议圆满结束,Aigtek绽放精彩瞬间!

    本界会议回顾2024第五届中国仪表功能材料学会电子元器件关键材料与技术专业委员会,于5月12日在安徽芜湖苏宁环球大酒店圆满结束。本次会议邀请了来自国内各大高校和企业的百余位专家学者,多家本领
    的头像 发表于 05-17 08:01 452次阅读
    中国仪<b class='flag-5'>表功能</b>材料学会电子元器件关键材料会议圆满结束,Aigtek绽放精彩瞬间!

    鸿蒙ArkUI开发:常用布局【 创建列表(List)】

    列表容器是为了高效处理长列表的容器,能支持横向、竖向滚动,数据分组,分组头悬浮等功能
    的头像 发表于 05-15 15:30 711次阅读
    鸿蒙ArkUI开发:常用布局【 创建<b class='flag-5'>列表</b>(List)】

    HarmonyOS开发案例:【待办列表

    使用ArkTS声明式语法和基础组件,实现简易待办列表。效果为点击某一事项,替换标签图片、虚化文字。
    的头像 发表于 05-06 15:22 1028次阅读
    HarmonyOS开发案例:【待办<b class='flag-5'>列表</b>】

    SOLIDWORKS特色功能介绍

    SOLIDWORKS是一款功能强大的三维CAD设计软件,广泛应用于机械设计、工程分析、产品数据管理和仿真等多个领域。该软件以其用户友好的界面、丰富的功能和性能,赢得了全球数百万工程师和设计人员的青睐。接下来,我们将详细介绍SOL
    的头像 发表于 04-11 15:05 870次阅读

    访问控制列表什么?ACL的功能特点

    访问控制列表(Access Control List,简称ACL)是一种网络安全机制,用于定义和实施对网络资源或系统对象的访问权限。ACL可以精确地控制哪些主体(如用户、设备、服务等)能够对特定客体
    的头像 发表于 04-03 13:57 710次阅读

    鸿蒙OS开发实例:【demo选择列表限定数量】

    HarmonyOs-demo-选择列表限定数量
    的头像 发表于 03-26 22:24 497次阅读
    鸿蒙OS开发实例:【demo选择<b class='flag-5'>列表</b>限定数量】

    Windows 10 22H2升级至19045.4123,新功能修复问题

    改进版Windows分享功能一键将URL快速分享给WhatsApp、Gmail、Facebook及LinkedIn等多款热门应用;X(推特)也即将加入支持列表
    的头像 发表于 03-01 11:45 1291次阅读

    带LORA通讯的智能电表功能介绍

    通讯智能电表
    jf_15090526
    发布于 :2024年01月29日 09:05:32

    关于LABVIEW的报表功能导致程序中止出现卡顿

    我在labview的while循环里面放入EXCEL报表功能(向EXCEL写入数据),每执行一次循环就会往EXCEL写入数据; 在程序执行报表的时候,如果需要停止程序运行,要反复多次点击前面板左上角的中止按钮(红色中止程序的按钮)
    发表于 01-16 21:02

    labview列表框控件怎么用

    选择。 列表框控件可以用于显示多个数据项,并且用户可以通过鼠标选择其中的一项或多项。在LabVIEW中,列表框控件可以分为单选和多选两种模式。在程序开发中,我们可以通过使用列表框控件来实现以下
    的头像 发表于 01-04 17:42 2667次阅读

    labview多列列表框写入数据

    LabVIEW是一种图形化编程环境,广泛应用于工业自动化领域。多列列表框是LabVIEW中常用的界面控件,可用于显示和编辑多个列的数据。本文将详细介绍如何通过LabVIEW实现多列列表框数据的写入
    的头像 发表于 12-26 13:49 5347次阅读

    替代品牌型号介绍

    电子发烧友网站提供《替代品牌型号介绍.xlsx》资料免费下载
    发表于 12-14 10:49 7次下载