EViews命令和编程之怎样使用矩阵.doc_第1页
EViews命令和编程之怎样使用矩阵.doc_第2页
EViews命令和编程之怎样使用矩阵.doc_第3页
EViews命令和编程之怎样使用矩阵.doc_第4页
EViews命令和编程之怎样使用矩阵.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EViews命令和编程之怎样使用矩阵一、申明矩阵(Declaring a Matrix)二、给矩阵赋值(Assigning Matrix Values)三、矩阵对象间复制数据(Copying Data Between Objects)四、矩阵表达式(Matrix Expressions)五、矩阵命令和函数(Matrix Commands and Functions)六、矩阵的图形和统计观察(Matrix Graph and Statistics Views)七、矩阵的输入与输出(Matrix input and output)八、矩阵运算与循环操作(Matrix Operations versus Loop Operations)九、矩阵对象自动变维(Automatic Resizing of Matrix Objects)一、申明矩阵(Declaring a Matrix)EViews提供了直接处理矩阵和向量中数据的工具。使用EViews的矩阵语言去执行哪些观察和过程都不能处理的计算。使用矩阵命令语言可以建立和管理下列对象:系数向量(Coef):在方程、系统、平板和状态空间里使用的列向量矩阵(Matrix): 两维数组行向量(Rowvector):行向量数值常数变量(Scalar):数值常数变量(标量) scalar 对称矩阵(Sym): 对称矩阵(以下三角形式保存)列向量(Vector): 列向量称以上对象为矩阵对象,事实上其中右一些对象并不是矩阵。以下讨论矩阵对象和矩阵语言。一、申明矩阵(Declaring a Matrix)在使用之前必须首先申明矩阵对象。对各种矩阵类型进行申明的语句,参见Command Reference by Object Type。简要地说来,申明语句由对象关键字组成,对象关键字之后的括号是选项,申明矩阵的维数大小置于括号中。关键字之后既可以只接新建对象名,也可以接新建对象名和赋值语句。不同的矩阵对象要求不同的维数信息。矩阵要求指定行数和列数。对称矩阵(sym)只需指定一个阶数,它既是行数也是列数。一个向量、行向量和系数向量要求指定元素的个数。数值常数变量(标量)不要求指定维数大小信息。如果申明矩阵对象时没有提供维数大小信息,EViews设定对象中只有一个元素。如果申明中没有包含赋值语句,EViews将以0初始化所有的值。例如:matrix(3,3) xdatamatrix(3,10) xdatasym(9) momentsvector(11) betasrowvector(5) xob建立一个3 3的0矩阵对象XDATA1,3 10的矩阵XDATA,9 9的对称矩阵MOMENTS,一个11 1的列向量BETAS和一个1 5的行向量XOB。所有这些对象都被初始化为0。改变矩阵对象的大小,可通过重复使用申明语句来实现。如果对一个已经存在的矩阵对象使用了赋值语句,将按照赋值语句的要求调整大小。例如:sym(10) bigzmatrix zdatamatrix(10,2) zdatazdata = bigz第一次申明ZDATA只有一个元素,然后再次申明ZDATA是一个10 2的矩阵,在最后一个语句中重新申明了ZDATA的大小,以便它能够接纳10 10的矩阵对称矩阵BIGZ的值。二、给矩阵赋值(Assigning Matrix Values)有给矩阵元素赋值三种方式:(1)将一些值赋给指定的矩阵元素(元素赋值)(2)用一个数值列表填充矩阵(3)执行一个矩阵赋值语句元素赋值(Element assignment)给矩阵赋值最基本的方法是将一个值赋给矩阵指定行和指定列的一个元素。简单地键入矩阵名接着在括号中给出行下标和列下标,然后是等号和赋给矩阵单元的一个数值常数(标量)。例如,申明了一个2 2的矩阵A:matrix(2,2) a这第一个命令建立了一个2 2的A,并进行了初始化,所以A的元素全为0。再键入下面两行命令:a(1,1) = 1a(2,1) = 4于是得到:通过程序中的循环语句可给大量的矩阵元素赋值:vector(10) ymatrix (10,10) xfor !i = 1 to 10y(!i) = !ifor !j = 1 to 10x(!i,!j) = !i + !jnextnext下面介绍的填充过程,也是使用循环进行赋值的。填充赋值(Fill assignment)给矩阵元素赋值的第二种方法是,使用填充(fill)过程,即将一系列数值按指定的顺序去填充矩阵的每一个元素。根据缺省设置,填充过程是一列一列地进行填充,但是也可改变这种填充过程。填充赋值的命令格式:矩阵对象名接句号,句号后接填充过程名fill,再接由逗号分隔的数值列表。下面是建立两个矩阵对象的例:vector(3) vv1.fill 0.1, 0.2, 0.3matrix(2,4) xx.fill 1, 2, 3, 4, 5, 6, 7, 8注意填充过程的默认填充顺序是按列填充。如果下面语句替代上面最后一行:x.fill(b=r) 1,2,3,4,5,6,7,8 选项b=r的意思是by row(按行)执行后,得到的X矩阵对象是:在有些情形下,企图用一组数值对矩阵元素进行重复地赋值。为此,采用选项1用数值列表重复循环填充直至矩阵被填满。于是,matrix(3,3) yy.fill(l) 1, 0, -1建立矩阵对象Y是:矩阵赋值语句(Matrix assignment)使用矩阵赋值语句可以将一个矩阵对象拷贝另一个矩阵里。矩阵赋值语句的命令格式:目标矩阵名=矩阵表达式矩阵表达式或者是一个数值常数,或者是一个矩阵,或者是一个返回矩阵对象的表达式。EViews执行矩阵赋值语句赋值时遵循的规则,随着矩阵赋值语句表达式中矩阵的类型不同而有所不同。赋值号右端是数值常数(标量)(Scalar values on the right-hand side)如果一个数值常数(标量)出现在等号的右边,那么矩阵的每一个元素就被赋给了这个给定的数值。例如:matrix(5,8) firstscalar secondvec(10) thirdfirst = 5second = c(2)third = first(3,5)由于在赋值语句中允许对矩阵进行初始化,所以可以将申明语句与赋值语句结合起来使用。matrix(5,8) first = 5scalar second = c(2)vec(10) third = first(3,5)赋值号右端与左端有相同的对象类型(Same object type on right-hand side)如果右边的源对象是一个矩阵或一个向量,且与左边的目标对象具有相同的类型,那么左边的目标对象将被重新定义维数使其与右边源对象的维数相同,以便把源对象中所有的元素拷贝到目标对象中。例如:matrix(10,2) zdata = 5matrix ydata = zdatamatrix(10,10) xdata = ydata申明ZDATA为10 2的矩阵,每个矩阵元素被5填充。YDATA自动地调整大小为10 2,所有元素被ZDATA的元素填充。注意,即使XDATA通过申明,是一个10 10的矩阵,但是通过右端的赋值,XDATA却成了一个元素为5的10 2的矩阵。因为上面的申明语句matrix(10,10) xdata = ydata等价于下面两行命令:matrix(10,10) xdataxdata = ydata第一个申明矩阵XDATA 是10 10的,然后当它被YDATA填充时,自动调整为10 2的维数。在更广泛的背景下进行赋值语句的讨论,会涉及到对象间的转换。一些情况下,转换是自动进行的,另一些情况下EViews为执行转换提供了一些辅助的工具。三、矩阵对象间复制数据(Copying Data Between Objects)除了前节中讨论的基本赋值语句之外,EViews提供大量的工具,以便复制数据到矩阵或者从矩阵将数据复制出来。有时,企图在不同类型的矩阵对象之间移动数据。例如,希望从向量中获取数据,并把它至于一个矩阵中。EViews有许多内置的规则,保证这类转换自动进行。有时,又企图在矩阵对象与EViews的序列或组之间移动数据。Eviews中有一系列独立的工具允许在类型不同的对象间进行数据转换。从矩阵对象复制数据(Copying data from matrix objects)使用赋值语句,数据可以在不同类型的矩阵对象之间进行传递。如果可能的话,EViews将调整目标对象的大小,以便目标对象含有与等号右边源对象有相同信息。处理Y=X表达式的基本规则综述如下:(1)Y的类型保持不变。(2)目标对象Y(如果可能)将采取源对象X的维数;否则EViews将发出出错。于是,将向量赋给一个矩阵,将调整矩阵的大小使矩阵的维数大小与向量相同;但是将一个矩阵赋值给一个向量则将产生错误。(3)将X中的数据将复制到Y中。对以上规则的特别例外:(1)如果X是一个数值常数(标量),那么Y保持原来的大小并被X的值填充。(2)如果X和Y都是列向量或都是行向量,那么Y将变成与X一样的类型。参见矩阵对象自动调整大小(Automatic Resizing of Matrix Objects)总结表中矩阵对象标准转换规则。下面是一些解释矩阵赋值的简单的例子:vector(3) xx(1) = 1x(2) = 2x(3) = 3vector y = xmatrix z = xY是一个3个元素的列向量,被赋给了与X相同的维数和数值。Z是一个3 1的矩阵,包含了与X一样的内容:Z(1,1)=1, Z(2,1)=2, Z(3,1)=3。EViews自动调整Z 的大它与X的维数相一致。自动调整大小的例子:vector(7) y = 2scalar value = 4matrix(10,10) w = valuew = ymatrix(2,3) x = 1rowvector(10) t = 100x = tW是10 10数值等于4 的矩阵,但是它后来被重新设置为7 1数值等于2的矩阵。X最后是1 10数值等于100的矩阵。类似地,考察命令:vector(7) y = 2rowvector(12) z = 3coef(20) betay = zz = beta命令执行完毕以后,Y是长度为12的行向量,每个元素的数值等于原始的行向量Z的数值3。原始的行向量Z最后变为长度为20的列向量,包含的数值是系数向量BETA的原始值0。在一些情况下 EViews不能执行给定的赋值操作,因为调整大小的操作没有定义。例如,假设X是2 2的矩阵,赋值语句如下:vector(7) y = x将得到一个错误。EViews不能够将一个向量转变为一个矩阵,因此没有办法将矩阵X的4个元素赋给向量Y。其它一些无效赋值语句的例子包括将矩阵的值赋给一个数值常数变量(标量),或者将对称矩阵的值赋给向量。也就是Eviews不能将右边的高维矩阵对象经过转换赋给左边的、低维的矩阵对象。从矩阵对象中复制部分数据(Copying data from parts of matrix objects)除了对象间标准的数据转换规则之外,EViews还提供了一些函数从矩阵对象中抽取一部分进行赋值。注意,调用这些函数要引用矩阵对象,有可能还要引用一些参数,这些函数将返回一个可用于赋值的矩阵对象。用于矩阵对象转换的命令和函数详见帮助文件中的Matrix Command and Function Reference。这里,通过例题阐述一些典型的操作。首先,假设从矩阵拷贝数据到向量。下面从M1和SYM1中拷贝数据到向量V1、V2、V3和V4中。matrix(10, 10) m1sym(10) sym1vector v1 = vec(m1)vector v2 = columnextract(m1,3)vector v3 = rowextract(m1,4)vector v4 = columnextract(sym1,5)这里,vec函数建立了100元素的列向量,它是矩阵M1一列堆在另一列之上这样堆砌形成的。V2是10个元素的列向量,抽取M1的第3列构成。V3是10个元素的行向量,抽取M1第4行构成。vec(矩阵各列堆砌形成列向量)、 rowextract(从矩阵中抽取一行)和columnextract(从矩阵中抽取一列)函数也可以使用于对称矩阵对象上。V4是10个元素的列向量,它是抽取SYM1第5列构成的。使用subextract(从矩阵中抽取一个子矩阵)函数也可从一个矩阵拷贝部分数据到另一个维数比较小的矩阵中。例如:matrix(20,20) m1=1matrix m2 = subextract(m1,5,5,10,7)matrix m3 = subextract(m1,5,10)matrix m4 = m1矩阵M2是6 3的矩阵,是M1的子矩阵,以M1矩阵包括5行5列为左上角、以10行7列为右下角。M3是抽取M15行10列到M1的最后一个元素(10行10列)构成的16 11的矩阵。subextract函数,如果只指定了一个端点(左上角端点),那么默认最后一个单元为右下角端点。矩阵M4是抽取M1全部元素构成的矩阵。M2和M3都是比M1小的子矩阵。使用colplace、 rowplace和 matplace命令也能从一个矩阵拷贝数据到另一个矩阵。例如:matrix(100,5) m1 = 0matrix(100,2) m2 = 1vector(100) v1 = 3rowvector(100) v2 = 4matplace(m1,m2,1,3)colplace(m1,v1,3)rowplace(m1,v2,80)matplace(矩阵置放)命令是将引用的第二个矩阵在指定位置放置到第一个引用的矩阵中。命令matplace(m1,m2,1,3)将M2放置到M1中,m2的左上角放置到m1的1行3列上。colplace(m1,v1,3)命令将V1放置到M1的第3列上。rowplace(m1,v2,80)命令将V2放置到M1的第80行。Colplace称为列放置命令,rowplace称为行放置命令。在矩阵对象和其它对象之间拷贝数据(Copying data between matrix objects and other objects )上一节讨论了在矩阵之间,矩阵与向量之间,或矩阵与数值常数变量(标量)之间的数据拷贝技术。下面讨论矩阵与其它对象,例如矩阵与序列或组之间的数据拷贝技术。注意原始序列或组对象与矩阵对象之间存在两大主要的差别:第一,涉及序列或组的操作必须使用当前工作文件样本信息,而矩阵操作则不必参照工作文件当前样本区间;第二,在两类对象之间如何处理缺失信息(NA)上存在很大差别。直接赋值(Direct Assignment)直接赋值是从序列或组对象拷贝数据到矩阵对象中最容易的方法。目标矩阵置于等号的左边,进行转换的序列或组放在等号的右边。如果把序列放在右边,EViews形成的向量中只包括当前样本的观察值。如果把组放在等号的右边,EViews形成一个矩阵,也只包含当前样本观察值。虽然很简单,但是这种方法存在两个基本的约束条件。第一,EViews只拷贝当前样本的观察值;第二,如果在序列或者组中的序列存在缺失数据,这些缺失数据将会放置到矩阵中去。于是,如果样本包含了20个观察值,但是序列或组包含了缺失数据,那么向量或矩阵的维数将少于20。下面要介绍的STOMNA则可以将NA保留到矩阵中。例如:smpl 1963:3 1993:6fetch hsf gmpyqgroup mygrp hsf gmpyqvector xvec = gmpyqmatrix xmat = mygrp这些语句建立了向量XVEC和具有两列的XMAT矩阵。它们分别包含了1963:3 1993:6序列或组中没有缺失数据的观察值。注意,如果GMPYQ中缺失了1970:01的观察值,HSF中缺失了1980:01的观察值,那么这两个序列中有两个观察值被拒绝于矩阵XMAT之外。执行矩阵赋值时,引用序列的元素就如同引用向量的元素一样,即把给定的下标数值置于名称后面的括号中。下标数值I引用的是从工作文件范围开始序列的第I个元素。例如,年度工作文件的范围是1961到1980,那么表达式GNP(6)引用的是1966年GNP的值。这些序列元素表达式可以用来将指定序列的序列值赋给矩阵元素,或者将矩阵的值赋给指定的序列元素。例如,matrix(5,10) xseries yser = nrndx(1,1) = yser(4)yser(5) = x(2,3)yser(6) = 4000.2将YSER的第4个值赋给X(1,1),再用X(2,3)的值和数值常数4000.2分别赋给YSER的第5个和第6个元素。在矩阵赋值运算中,允许引用序列元素如同引用向量元素一样,但是,一般说来,不能用序列去替代向量。如果使用序列去替代向量,大多数向量和矩阵运算会出现错误。例如,我们不能用一个序列名去执行一个行放置(rowplace)命令。必须注意,当我们不是进行矩阵赋值时,序列名后括号中的数值指的是对整个序列进行滞后/领先的运算。因此,在在生成序列,或在方程、系统和模型的设定中,GNP(6)代表的是领先6期的一个序列。若要要引用GNP序列指定的元素,则应当采用elem函数。使用convert 进行复制(Copy using convert)convert函数接受一个序列或组对象,convert可有样本选项,该函数返回一个向量或矩阵。如果没有指明样本,convert就采用工作文件的范围作为序列或组转换为矩阵对象的范围。样本决定了哪些序列元素将包含在矩阵对象中。例如,smpl 61 90group groupx inv gdp m1vector v = convert(gdp)matrix x = convert(groupx)X是一个30 3的矩阵。第1列包含INV序列的数据,第2列包含GDP,第3列包含M1的数据。正如直接赋值语句一样,convert函数也拒绝转换序列或组中任一序列中的缺失数据。如果在上面这个例题中,INV在1970和1980含有缺省数据,那么向量V含有30个元素,矩阵X则是28 3的矩阵。如果在后续运算中要求V的 行数与X的行数相等,这将导致出错。采用convert函数比采用直接赋值有两个主要的优点:第一,convert是一个函数,可以出现在矩阵表达式中;第二,可选形式参数指定哪个范围的样本参与转换。例如,sample s1.set 50 90matrix x = convert(grp,s1) sym y = inverse(inner(convert(grp,s1)采用样本对象S1设置的范围进行转换。使用stom、 stomna 和 mtos 复制(Copy using stom, stomna, and mtos)EViews还提供了三个序列与矩阵之间直接进行数据转换的命令,而且转换时可以既控制样本范围也可以处理NA数据。stom (Series TO Matrix)接受一个序列或一个矩阵对象并拷贝数据到一个向量或矩阵,既可以采用当前工作文件范围也可以指定样本范围进行这种转换。如同直接赋值一样,拒绝序列中的或组中任一序列的缺失数据参与转换。例如: sample smpl1.set 1950 1995smpl 61 90group group1 gnp gdp moneyvector(46) vec1matrix(3,30) mat1stom(gdp,vec1,smpl1)stom(group1,mat1)将stom与convert相比较,stom是一个命令不能包含在矩阵表达式中,与convert更不同的是目标向量或矩阵必须是已经存在而且具有适当的维数。stomna (Series TO Matrix with NAs)与stom的操作相同,不同之处在于stomna允许缺失数据参与转换。序列相关样本的元素直接照原样地复制到目标向量或矩阵中。于是, smpl 1951 2005vector(55) gvectorstom(gdp,gvector)总是建立55个元素的GVECTOR向量,包含1951到2005年的GDP数据,包括了NA数据。mtos (Matrix TO Series) 接受一个矩阵或向量拷贝它们的数据到一个已经存在的序列或组对象中,拷贝被时可采用当前样本或指定样本。例如,mtos(mat1,group1)mtos(vec1,resid)mtos(mat2,group1,smpl1)如同stom一样,要求目标序列或组对象已经存在,由样本范围给定的目标维数应与源向量或矩阵的维数相匹配。四、矩阵表达式(Matrix Expressions)矩阵表达式指的是采用数学运算符或关系运算符、函数和括号的,包含了矩阵对象的表达式。下面将更详细地讨论矩阵函数,在一些例题中将验证一些相关的结论。例如:inner(convert(grp,s1)mat1*vec1inverse(mat1+mat2)*vec1mat1 mat2EViews在计算表达式值时遵循下列优先等级的规则:可以采用多对括号来明确矩阵表达式中的优先等级。如果不采用括号,遵循以下优先等级进行计算:1. 反号运算符和函数2. 乘、除运算符3. 加、减运算符4. 比较运算符: =, , =, , 例如,inverse(mat1+mat2)+inverse(mat3+mat4)vec1*inverse(mat1+mat2)*transpose(vec1)在第一个表达式中,矩阵MAT1 和MAT2相加后求逆;矩阵MAT3 和MAT4相加后求逆;最后两个逆矩阵相加。在第二个表达式中,矩阵MAT1 和MAT2相加后求逆后,利用结果计算VEC1的二次型。矩阵运算(Matrix Operators)EViews为矩阵对象提供了标准数学运算。取反符号(-)是一元运算符取反符号(-)改变矩阵对象中每一个元素的符号,得到一个具有相同维数的矩阵或向量。例如:matrix jneg = -jpos以下是二元运算符:加 (+)将两个类型和维数都相同的相加,得到具有相同类型和维数大小的矩阵。例如:matrix(3,4) amatrix(3,4) bmatrix sum = a + b可以将一个方阵与维数相同的对称阵(sym)相加。对称阵的上三角等于下三角。加一个数值常数变量(标量)到矩阵对象,即将数值常数与矩阵或向量的每一个元素相加。减 (-)减的结果与加的结果相同。例如:matrix(3,4) amatrix(3,4) bmatrix dif = a - b从一个矩阵对象中减一个数值常数变量(标量),即从矩阵对象的每一个元素中减去这个数值常数变量(标量)。乘(*)可以将两个矩阵对象相乘,第一个矩阵的列数应等于第二个矩阵的行数。例如:matrix(5,9) amatrix(9,22) bmatrix prod = a * b这个例子中,乘积结果PROD是一个5行22列的矩阵。进行相乘运算的两个之一或者两个都可以是对称阵。注意,两个对称阵相乘的结果是一个矩阵,但不一定是对称阵。inner函数(内积函数)得到的是一个方阵与自身转置相乘的结果棗一定是对称阵。一个矩阵或对称阵左乘一个向量,矩阵的列数应与向量元素的个数相等,相乘结果得到一个向量,向量的维数与矩阵的行数相等。例如: matrix(5,9) matvector(9) vecvector res = mat * vec在这个例子中,RES有5个元素。一个行向量左乘一个矩阵或对称阵(条件:行向量元素个数等于矩阵的行数),得到一个行向量,维数等于原矩阵的列数。例如:rowvector rresmatrix(5,9) matrowvector(5) rowrres = row * mat在这个例子中。RRES有9个元素。一个矩阵对象被标量乘。原矩阵的每一个元素与这个数值常数变量(标量)相乘。结果是一个与原矩阵类型和维数相同的矩阵。数值常数变量(标量)可左乘矩阵也可右乘矩阵。例如:matrix prod = 3.14159*origmatrix xxx = d_mat*7除(/)一个矩阵除以一个数值常数变量(标量)。例如:matrix z = orig/3矩阵对象ORIGD的每一个元素被3除。 比较运算符(=, , =, , =, )两个相同类型和相同维数的矩阵可以使用比较运算符对它们进行比较。比较结果是一个逻辑值。每个相应的元素配对进行比较检验,如果任一对检验失败,那么返回0或false;否则返回1或true。例如:if result value then run crect endif比较结果有可能是:第一个矩阵不大于,不小于,不等于第二个矩阵。例如:vector(2) v1vector(2) v2v1(1) = 1v1(2) = 2v2(1) = 2v2(2) = 1因为V1的第一个元素小于V2的第一个元素,V1不大于V2。又因为V1的第二个元素大于V2的第二个元素,V1不小于V2。所以,两个向量是不相等的。五、矩阵命令和函数(Matrix Commands and Functions)EViews提供了大量的处理矩阵对象内容的命令和函数。这些命令和函数粗略地分为4个大类:1.常用命令和函数(Utility Commands and Functions)2.矩阵代数函数(Matrix Algebra Functions)3.描述统计量函数(Descriptive Statistics Functions)4.矩阵元素函数(Element Functions)常用命令和函数为建立矩阵、管理矩阵和给矩阵赋值提供了支持。已经介绍过convert函数和stom命令,它们都是从序列或组对象中将数据转换到向量或矩阵的。矩阵代数函数允许进行普通的矩阵代数操作和计算。可以使用这些内置的函数去计算特征根(eigenvalues)、特征向量( eigenvectors )和矩阵行列式的值(determinants of matrices),去求矩阵的逆矩阵,去求解线性方程组和执行奇异值的分解。描述统计量函数计算矩阵对象数据的综合统计量。可以计算矩阵中所有元素的平均数、中位数、最大值、最小值和方差。矩阵元素函数允许建立一个新矩阵,新矩阵的元素是另一个矩阵每一个元素的函数值。在序列表达式中有效的大多数函数都可以应用与矩阵对象。例如,计算矩阵每个元素的指数值或对数值,或向量每个元素的累计正态分布函数值。函数与命令(Functions versus Commands)一般说来,函数总是接受一个形式变量,返回一个结果。形式变量就是调用函数让函数返回函数值的自变量。函数容易识别,函数名以符号打头。调用函数有两种基本的方法:第一,将返回结果赋给EViews对象。这些对象然后可用于其它EViews表达式中,如果在后续计算中要运用这个结果的话。例如,matrix y = transpose(x)将矩阵X的转置传递给矩阵Y。因为Y是一个标准的EViews矩阵,它可以用在所有常见的表达式中。第二,将函数作为矩阵表达式的一部分。因为函数返回的结果是立等可用的,如果在将来的使用中也不会再用到它们,那么就没有必要赋给一个命名对象,而是将函数作为表达式的一部分。例如,这个命令scalar z = vec1*inverse(v1+v2)*transpose(vec1)使用了函数inverse和函数transpose的结果来构造申明表达式,并将表达式的值赋给了Z。在后续计算中这些表达

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论