matrix矩阵库开发者手册内容摘要:

display(b)。 printf(\n)。 for ( i=1。 i=()。 i++) { for (int j=1。 j=()。 j++) { printf(x(%d,%d)=%,i,j,(i,j))。 } printf(\n)。 } exitM()。 return 1。 } 矩阵元素的类型为 Mm,声明一个矩阵元素如下: Mm a; a被构造成一个空的矩阵,不包含任何元素。 多维矩阵如下声明: Mm a。 a=zeros(m,n,p)。 创建复数矩阵: Mm x。 x=czeros(isc,m,n)。 isc为 true时,矩阵为复数矩阵。 矩阵元素被赋为零。 一次创建多个矩阵: Mm a,b,c。 需要指出的是,所有内存管理及矩阵重新赋值所进行的内存分配及销毁都是自动进行的,无需人为干涉。 所有不需要用 new为矩阵申请存储空间。 在 MATCOM里,进行矩阵创建的唯一方式是: Mm a; 这个过程是自动进行的,举个例子: Mm x。 x=。 disp(x)。 显示结果为: 所以可以像 c++一样对 Mm类型数据进行赋值计算,此时 Mm 被视为 1X1矩阵。 矩阵在创建过程中可以被命名。 命名的矩阵可以通过 Mm 成员函数 getname()获取名字,用display函数打印名字。 矩阵命名带来很多使用上的方便,比如在一个文件中存储了一组 Mm变量数据,为了读出数据,我们申请一组空的 Mm变量,然后把变量赋予所读取矩阵的名字,用 load函数可以读出相应矩阵数据,和 MATLAB的 MEX文件读取过程是相似的。 当然矩阵命名不是经常用到。 任意 Mm类型自动创建的矩阵的名字是空的。 为了创建有名字的矩阵,需使用 dMm. dMm(a)。 a=。 display(a)。 打印结果如下: a (1x1)=1 double elements real (8 bytes)= 如果用 Mm创建矩阵,则矩阵名字为空: Mm a。 a=。 display(a)。 打印结果如下: ans(1x1)=1 double elements real (8 bytes)= 可以人工命名: Mm a。 a=。 (your name)。 display(a)。 打印结果如下: your name(1x1)=1 double elements real (8 bytes)= Mm类型的成员函数 setname(const char* new_name)是用来命名矩阵名字的,用 char getname()可获得矩阵当前名字。 dMm是一个宏: define dMm(x) Mm x(i_o,x,0) 所以无法一次创建多个元素,为了声明多个矩阵需要多次 调用。 dMm(a)。 dMm(b)。 dMm(c)。 TM函数用来创建字符矩阵,用于将 C语言的 char*类型转换为字符矩阵,比如: Mm x。 x=TM(visualsanamp。 amp。 NUAA)。 这句代码将创建一个矩阵 x,包含字符内容 “visualsanamp。 amp。 NUAA”。 矩阵字符是自动转换的,存储的字符可以被转换为 ASCII码,也可以从 ascii数据矩阵转换为字符矩阵。 用函数 setstr( value),value为 0时,矩阵转换为 ascii码, value为 1时,矩阵转换为字符矩阵。 举个 例子: Mm y。 y=TM(南京航空航天大学 )。 (1)。 printf(\n字符打印 \n)。 display(y)。 (0)。 printf(\n转为 ascii码后 \n)。 display(y)。 printf(\n由 ascii打印 26个字母 \n)。 Mm z。 z=colon(65,65+25)。 (1)。 display(z)。 printf(\ \n)。 打印结果 char* 函数 Mstr将完成这项工作。 定义如下: void DLLI Mstr(cMm x, char *str, int maxlen)。 其中: x是源矩阵 str为目标 char*类型变量 maxlen用于设置存储于 str的字符的最大个数 如果矩阵的字符个数大于 maxlen,则多余的字符会被忽略 ,cMm被定义为: typedef const Mmamp。 cMm。 例子:将 Mm矩阵字符转为 char*类型 Mm y。 y=TM(南京航空航天大学 )。 char str[100]。 Mstr(y,str,100)。 printf(str)。 printf(\ \n\n)。 打印结果: 在 c++编译环境中访问矩阵元素的方法如下: . (..)访问矩阵元素的实部 . (..)访问矩阵的虚部 参数代表需要访问的矩阵的位置,如果参数超过矩阵的大小,则会出错。 函数返回的是doubleamp。 型,所以通过该函数可以对矩阵元素进行读写。 每个函数拥有四种可能的形式,取决于输入参数模式: . ()返回( 1, 1)处的数值 . (n)返回在( n)位置处的数值 . (i,j)返回在( i,j)处的数值 . (i,j,k)返回在( i,j,k)处的数值 需要强调的是现对于 c++数组下标元素从 0开始,而 Mm矩阵的下标是从 1开始的。 所以像(0), (0, 0)这种用法是错误的。 对于 ()的用法类似。 举个例子: printf(\n\n\n例子:矩阵元素读写 \n)。 Mm z。 double w1,w2,w3。 z=magic(3)。 display(z)。 printf(\()=)。 w1=()。 print。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。