Page8-1Chapter8列表操作列表是一种计算器对象,可用于数据处理和编程。本章介绍了列表操作的示例。Definitions在计算器的上下文中,列表是一系列对象,它们在大括号之间用空格(#),RPN模式或逗号(‚í),在两种模式下。可以包括在列表中的对象是数字,字母,字符串,变量名称和/或运算符。列表对于操作数据集和某些编程应用程序非常有用。列表的一些示例是:{t1},{BETh24},{11.52.0},{aaaa},{{123}{321}{123}}在下面显示的示例中,我们将仅限于数字列表。创建和存储列表要在ALG模式下创建列表,首先输入大括号键„ä(associatedwiththe+key),然后键入或输入列表中的元素,用逗号(‚í).以下击键将进入列表{1234}并将其存储到变量L1中。„ä1‚í2‚í3‚í4™K~l1`Thescreenwillshowthefollowing:左边的图显示了按`之前的屏幕,而右边的图显示了将列表存储到L1后的屏幕。请注意,在按下`之前,列表会显示分隔其元素的逗号。但是,在按下`之后,逗号将替换为空格。在RPN模式下输入相同的列表需要以下按键:„ä1#2#3#4`~l1`KPage8-2下图显示了在按下K键之前的RPN堆栈:编写和分解列表组合和分解列表仅在RPN模式下有意义。在这种操作模式下,通过使用函数OBJ→来实现分解列表。使用此函数,RPN堆栈中的列表将分解为其元素,堆栈级别为1:显示列表中的元素数。接下来的两个屏幕截图显示了在应用功能OBJ→之前和之后带有小列表的堆栈:请注意,在应用OBJ→之后,列表的元素占用级别4:到2:,而级别1:显示列表中的元素数量。要在RPN模式下组成列表,请将列表的元素放在堆栈中,输入列表大小,然后应用函数LIST(从函数目录中选择它,如下所示:‚N‚é,然后使用上下箭头键(—˜)定位函数LIST).以下屏幕截图显示了在应用函数LIST之前和之后的4个列表的元素列表:Note:FunctionOBJ应用于ALG模式的列表只需再现列表,并向其添加列表大小:使用数字列表进行操作为了演示带有数字列表的操作,我们将创建一些其他列表,除了上面创建的列表L1:L2={-3,2,1,5},L3={-6,5,3,1,0,3,-4},L4={3,-2,1,5,3,2,1}。在ALG模式下,输入列表L2,L3,L4后屏幕将如下所示:Page8-3在RPN模式下,以下屏幕显示准备存储的三个列表及其名称。要在这种情况下存储列表,您需要按K三次。改变标志当应用于数字列表时,符号更改键(\)将更改列表中所有元素的符号。例如:加法,减法,乘法,除法通过单个数字对列表进行乘法和除法分布在列表中,例如:从列表中减去单个数字将从列表中的每个元素中减去相同的数字,例如:在列表中添加单个数字会生成一个由数字增加的列表,而不是向列表中的每个元素添加单个数字。例如:Page8-4相同长度的数字列表的减法,乘法和除法产生具有逐项运算的相同长度的列表。例子:除法L4/L3将产生无穷大项,因为在L3的要素之一是零:如果操作中涉及的列表具有不同的长度,则会生成错误消息(错误:无效维度)。当应用于列表时,加号(+)作为连接运算符,将两个列表放在一起,而不是逐个添加它们。例如:为了逐个添加两个相同长度的列表,我们需要使用运算符ADD。可以使用函数目录(‚N)加载此运算符。下面的屏幕显示ADD的应用程序,用于逐个添加列表L1和L2:键盘上的实数功能键盘上的实数功能(ABS,ex,LN,10x,LOG,SIN,x2,√,COS,TAN,ASIN,ACOS,ATAN,yx)可用于列表。这里有些例子:Page8-5ABSEXPandLNLOGandANTILOGSQandsquarerootSIN,ASINCOS,ACOSTAN,ATANINVERSE(1/x)MTH菜单中的实数功能从MTH菜单中感兴趣的功能包括HYPERBOLIC菜单:SINH,ASINH,COSH,ACOSH,TANH,ATANH和REAL菜单:%,%CH,%T,MIN,MAX,MOD,SIGN,MANT,XPON,IP,FP,RND,TRNC,FLOOR,CEIL,D→R,R→D。采用单个参数的一些函数如下所示应用于实数列表:SINH,ASINHCOSH,ACOSHPage8-6TANH,ATANHSIGN,MANT,XPONIP,FPFLOOR,CEILDR,RD使用两个参数的函数示例下面的屏幕截图显示了函数%的应用列表参数。函数%需要两个参数。前两个示例显示了两个参数中只有一个是列表的情况。结果是根据list参数分配函数%的列表。例如,%({10,20,30},1)={%(10,1),%(20,1),%(30,1)},while%(5,{10,20,30})={%(5,10),%(5,20),%(5,30)}在以下示例中,函数%的两个参数都是相同大小的列表。在这种情况下,执行参数的逐项分布,即,Page8-7%({10,20,30},{1,2,3})={%(10,1),%(20,2),%(30,3)}列表参数的函数%的这种描述显示了当一个或两个参数是列表时,具有两个参数的任何函数的一般评估模式。功能RND的应用示例如下所示:复数列表下面的练习展示了如何创建一个复数列表,给出两个相同长度的列表,一个表示实部,另一个表示复数的虚部。使用L1ADDi*L2。诸如LN,EXP,SQ等的功能也可以应用于复数列表,例如,Page8-8以下示例显示复数的函数RE(实部),IM(虚部),ABS(幅度)和ARG(参数)的应用。结果是实数列表:代数对象列表以下是应用SIN函数的代数对象列表的示例:TheMTH/LISTmenuMTH菜单提供了许多专门用于列表的功能。将标志117设置为CHOOSE框:接下来,系统标志117设置为SOFT菜单:Page8-9此菜单包含以下功能:ΔLISTΣLISTΠLISTSORT:计算列表中连续元素之间的增量:计算列表中元素的总和:计算列表中元素的乘积:按顺序对元素进行排序REVLIST:撤消列表顺序ADD:运算符用于逐个添加两个相同长度的列表(上面显示了此运算符的示例)下面显示了在ALG模式下应用这些功能的示例:可以组合SORT和REVLIST以按递减顺序对列表进行排序:如果您在RPN模式下工作,请将列表输入堆栈,然后选择所需的操作。例如,要计算列表L3中连续元素之间的增量,请按:l3`!´˜˜#OK##OK#这将L3置于堆栈上,然后从MTH菜单中选择ΔLIST操作。Page8-10操纵列表的元素PRG(编程)菜单包括LIST子菜单,其具有许多用于操纵列表元素的功能。系统标志117设置为CHOOSE框:Item1.ELEMENTS..包含以下可用于操作列表中元素的函数:Listsize来自PRG/LIST/ELEMENTS子菜单的函数SIZE可用于获得列表的大小(也称为长度),例如,在列表中提取和插入元素要提取列表的元素,我们使用PRG/LIST/ELEMENTS子菜单中的函数GET。函数GET的参数是列表和要提取的元素的编号。要将元素插入列表,请使用功能PUT(也可在PRG/LST/ELEMENTS子菜单中使用)。函数PUT的参数是列表,要替换的位置以及要替换的值。功能GET和PUT的应用示例如下面的屏幕所示:Page8-11功能GETI和PUTI,也可在子菜单PRG/ELEMENTS/中使用,也可用于提取和放置列表中的元素。然而,这两个函数主要用于编程。函数GETI使用与GET相同的参数并返回列表,元素位置加1,以及请求位置的元素。函数PUTI使用与GET相同的参数,并返回列表和列表大小。列表中的元素位置为了确定列表中元素的位置,使用具有列表和感兴趣元素作为参数的函数POS。例如,HEADandTAILfunctionsHEAD函数提取列表中的第一个元素。TAIL函数删除列表的第一个元素,返回剩余的列表。下面显示了一些示例:TheSEQfunction项目2.PRG/LIST菜单中的PROCEDURES..包含以下可用于对列表进行操作的功能。函数REVLIST和SORT早先作为MTH/LIST菜单的一部分介绍。函数DOLIST,DOSUBS,NSUB,ENDSUB和STREAM被设计为用于在RPN模式下操作列表的编程函数Page8-12函数SEQ可用于生成给定特定表达式的值列表,并在此处更详细地描述。SEQ函数将索引,索引的名称,索引的起始,结束和增量值作为参数作为参数,并返回一个列表,该列表包含对索引的所有可能值的表达式的求值。函数的一般形式是SEQ(表达式,索引,开始,结束,增量)。在以下示例中,在ALG模式下,我们识别expression=n2,index=n,start=1,end=4和increment=1:产生的列表对应于值{12,22,32,42}。在RPN模式下,您可以列出该函数的不同参数,如下所示:在应用函数SEQ之前。TheMAPfunction通过命令目录(‚N),提供的MAP函数将数字列表和函数f(X)或形式→a...,并生成一个列表,该列表包含将该函数或程序应用于数字列表。例如,以下对函数MAP的调用将函数SIN(X)应用于列表{1,2,3}:InALGmode,thesyntaxis:~~map~!Ü!ä1@í2@í3™@íS~X`InRPNmode,thesyntaxis:!ä1@í2@í3`³S~X`~~map`Page8-13在这两种情况下,您都可以输入MAP命令(如上例所示)或从CAT菜单中选择命令。以下对函数MAP的调用使用程序而不是函数作为第二个参数:定义使用列表的函数在第3章中,我们介绍了使用DEFINE函数(„à)来创建具有一个或多个参数的实数函数。使用DEF定义的函数也可以与列表参数一起使用,除了包含加法的任何函数必须使用ADD运算符而不是加号(+).例如,如果我们定义函数F(X,Y)=(X-5)*(Y-2),这里以ALG模式显示:我们可以使用列表(例如,本章前面定义的变量L1和L2)来评估函数,从而产生:由于函数语句不包含任何添加,因此将函数应用于列表参数非常简单。但是,如果我们定义函数G(X,Y)=(X+3)*Y,尝试使用列表参数(L1,L2)评估此函数将失败:为了解决这个问题,我们可以编辑变量@@@G@@@的内容,我们可以使用…@@@G@@@在堆栈中列出Page8-14用ADD替换加号(+):接下来,我们将编辑的表达式存储到变量中@@@G@@@:评估G(L1,L2)现在产生以下结果:Asanalternative,youcandefinethefunctionwithADDratherthantheplussign(+),fromthestart,i.e.,useDEFINE('G(X,Y)=(XDD3)*Y'):您还可以将函数定义为G(X,Y)=(X-3)*Y.作为替代方案,您可以从一开始就使用ADD而不是加号(+)定义函数,Page8-15列表的应用本节显示了几个列表的应用程序,用于计算样本的统计信息。通过示例,我们了解了值列表,例如{s1,s2,...,sn}。假设感兴趣的样本是列表{1,5,3,1,2,1,3,4,2,1}是列表并且我们将它存储到一个名为S的变量中(下面的屏幕截图显示了ALG模式下的这个动作,但RPN模式下的过程非常相似。请记住,在RPN模式下在激活函数之前将函数的参数放在堆栈中):列表的调和平均值这是一个足够小的样本,我们可以在屏幕上指望元素的数量(n=10)。对于更大的列表,我们可以使用函数SIZE来获得该数字,例如,假设我们想要计算样本的调和平均值,定义为.要计算此值,我们可以按照以下步骤操作:1.将函数INV()应用于列表S:2.将函数ΣLIST()应用于结果列表in1。⎟⎟⎠⎞⎜⎜⎝⎛+++==∑=nnknhsssnsns11111111211LPage8-163.将上面的结果除以n=1