1、令。建议要用的时候再利用matlab自带的帮助文档来搜索有用的函数和工具包。matlab的函数和命令都是比较人性化的,比如想要搜索读取fits文件的函数,搜索fits就能够搜到fitsread函数;需要将读出的fits数据重新做图,搜索image就可以找到imagesc函数。从书和别人的文档都只能学到有限的比较系统的操作,看帮助文档能发现更多的东西并整理出自己的使用方法。最后要说明的是,C必须用循环才能做到的事情Fortran和matlab用矩阵和数组运算就能做到,相对效率提高了很多;而对于一些运算量非常大的程序还是推荐用Fortran,因为相比之下matlab的运算速度比Fortran慢很多
2、;而网上很多现有的天文软件包都是用fortran写的(比如由宇宙学参数计算模拟数据的CAMB程序和宇宙模型可能性预测LIKELIHOOD程序),虽然matlab也有很多天文软件包,但相对fortran还是逊色不少。1、数据类型,声明及赋初值matlab中存储的数据类型(class)有以下几种:而实际上matlab不需要对变量做声明,当它发现一个新的变量名时,将默认将其为双精度浮点类型(double)并分配内存空间。(这比C和 Fortran方便了许多,但在完成大运算量的程序时就显得浪费存储空间了)当需要把变量a从double转为其他类型的时候,比如要转为int16型,可以使用以下命令:a=in
3、t16(a)当需要创建一个字符型变量x并对其赋初值时,用以下格式:x=字符串;注意:(1)在命令后加“;”表示不在command window中显示结果,而对上例来说如果不加“;”则会显示所赋字符串内容。(2)所有的命令必须在英文输入状态下,如果使用中文输入状态下全角的“;”,将被处理为非法字符。其中logical,cell和structure为逻辑,元胞和构架数组类型,将在后面的数组部分提到;function handle为函数句柄类型,将在后面的“M脚本文件和M函数文件、函数句柄”部分提到;java类供JAVA API应用程序接口使用,本文不进行说明。最后说明一下,matlab也支持复数操
4、作,赋值的时候直接输入即可,比如:a=1+2i;2、基本输入输出输入:v=input(message) %将用户输入的内容赋给变量v,s %将用户输入的内容作为字符串赋给变量vkeyboard %用户可以从键盘输入任意多个指令v=yesinput(prompt,default,possib)%prompt为文字提示,default为缺省设置“值”,possib为设置值的范围。%该指令无法在notebook中运行。输出:disp(a)%显示变量a的内容,另一种显示变量内容的方法是输入变量名,但是这样显示的结果带有“a=”。1、运算符(1)关系操作符= = = 0.5) %由大于0.5的元素构成的
5、子数组(3)对二维数值数组赋初值逐个赋值:x=1,2,3; 3,4,6; 7,8,9%“;”为二维数组“行”的分隔符号,而“,”和空格为同一行元素的分隔符。整列赋值:x(:,4,5)=4 %第4、5列赋值为4元素重排:A=reshape(1:9,3,3)%将1到9重新排列成一个(3*3)矩阵,注意matlab是列“优先”,即先排第一列再排第二列,而不是按行来排。(4)二维数组元素的标识和寻访“全下标”标识:A(3,5) %第3行第5列元素“单下标”标识:对于一个(m*n)维数组A中第r行第c列元素,其“单下标”表示为:A(l)%这里l=(c-1)*m+r2、数组运算和矩阵运算(1)数组运算指令
6、含义A.相当于conj(A),conj的作用help一下吧A=s把标量s赋给A的每个元素s+B标量s分别与B元素之和s-B,B-s标量s分别与B元素之差s.*A标量s分别与A元素之积s./B,B.ss分别被B的元素除A.nA的每个元素自乘n次A.p对A的各个元素分别求非整数幂p.A以p为底,分别以A的元素为指数求幂A+B对应元素相加A-B对应元素相减A.*B对应元素相乘A./BA的元素被B的对应元素除B.A同上exp(A)以e为底,分别以A的元素为指数求幂log(A)对A的各个元素求对数sqrt(A)对A的各个元素求平方根f(A)求A各个元素的函数值A#B对应元素的关系运算,#代表关系运算符A
7、B对应元素的逻辑运算,代表逻辑运算符(2)矩阵运算A共轭转置s*AS*inv(B)B阵的逆乘sAnA阵为方阵时,自乘n次Ap方阵A的非整数乘方pAA阵为方阵时,标量的矩阵乘方矩阵相加矩阵相减A*B矩阵相乘A/BA右除BBAA左除Bexpm(A)A的矩阵指数函数logm(A)A的矩阵对数函数sqrtm(A)A的矩阵平方根函数funm(A,FN)一般矩阵函数3、逻辑数组看例子就明白了:A=zeros(2,5); %预生成一个(2*5)全零数组A(:)=-4:5; %运用“全元素”方法向A赋值L=abs(A)3 %产生一个与A同维的“0 -1”逻辑值数组islogical(L) %判断L是否逻辑值数
8、组。输出若为1,则是X=A(L) %把L中逻辑值为1对应的A元素取出4、字符串数组(1)字符串数组赋初值S=aabb或者:S=char(还可以:S=str2mat( %这里空串会产生空行而:S=str2cat( %这里空串不会产生空行(2) 字符串操作函数int2str %把整数数组转换为串数组num2str %把非整数数组转换为串数组mat2str %把数值数组转换为串数组%请使用help搜索其他的字符串操作函数。5、元胞数组元胞数组和一般数值数组和字符串数组不同,其元素可以是任意类型和大小的对象。这和C的结构型数组有些类似。(1)创建元胞数组有以下两种创建方式:外标识元素赋值:a=char();b=1:9;c=2:d=1+2i;A(1,1)=a; A(1,2)=b; A(2,1)=c; A(2,2)=d;内涵的直接赋值:A1,1=a; A1,2=b; A2,1=c; A2,2=d;(2)元胞数组内容的调取注意在这里()访问的是元胞,用访问的是元胞中存储的内容。比如:a=A(1,1)显示:a=12 chara=A1,1aabb所以
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1