当前位置:文档之家› matlab基本用法

matlab基本用法

目录:一、说明二、数据类型及基本输入输出三、流程控制四、循环五、数组、数组运算和矩阵运算六、M脚本文件和M函数文件、函数句柄七、文件八、数据和函数的可视化一、说明matlab作为数学软件有其强大的图形用户界面操作、数据和函数的可视化和数值计算功能,且自带很多现有的函数和工具包。

而本文只涉及一些比较系统的基本操作,在最后附带介绍一些基本的数据和函数的可视化命令。

建议要用的时候再利用matlab自带的帮助文档来搜索有用的函数和工具包。

matlab的函数和命令都是比较人性化的,比如想要搜索读取fits文件的函数,搜索fits就能够搜到fitsread函数;需要将读出的fits数据重新做图,搜索image就可以找到imagesc函数。

从书和别人的文档都只能学到有限的比较系统的操作,看帮助文档能发现更多的东西并整理出自己的使用方法。

二、数据类型及基本输入输出1、数据类型,声明及赋初值matlab中存储的数据类型(class)有以下几种:而实际上matlab不需要对变量做声明,当它发现一个新的变量名时,将默认将其为双精度浮点类型(double)并分配内存空间。

(这比C和 Fortran方便了许多,但在完成大运算量的程序时就显得浪费存储空间了)当需要把变量a从double转为其他类型的时候,比如要转为int16型,可以使用以下命令:a=int16(a)当需要创建一个字符型变量x并对其赋初值时,用以下格式:x='字符串';注意:(1)在命令后加“;”表示不在command window中显示结果,而对上例来说如果不加“;”则会显示所赋字符串内容。

(2)所有的命令必须在英文输入状态下,如果使用中文输入状态下全角的“;”,将被处理为非法字符。

其中logical,cell和structure为逻辑,元胞和构架数组类型,将在后面的数组部分提到;function handle为函数句柄类型,将在后面的“M脚本文件和M函数文件、函数句柄”部分提到;java类供JAVA API应用程序接口使用,本文不进行说明。

最后说明一下,matlab也支持复数操作,赋值的时候直接输入即可,比如:a=1+2i;2、基本输入输出输入:v=input('message') %将用户输入的内容赋给变量v v=input('message','s') %将用户输入的内容作为字符串赋给变量vkeyboard %用户可以从键盘输入任意多个指令v=yesinput('prompt',default,possib)%prompt为文字提示,default为缺省设置“值”,possib为设置值的范围。

%该指令无法在notebook中运行。

输出:disp(a)%显示变量a的内容,另一种显示变量内容的方法是输入变量名,但是这样显示的结果带有“a=”。

三、流程控制1、运算符(1)关系操作符 == ~= > >= < <=(2)涉及相互关系的集合运算符 & | ~ xor % xor 相异元素返回1,相同元素返回02、IF(1) 基本:if 逻辑判断式……end(2) 多重判断:if 逻辑判断式......else if 逻辑判断式......else 逻辑判断式......endendend3、switch-case结构和C的switch语句一样switch 变量case数值1……case数值2……case 数值k %当变量等于数值k的时候,执行本组命令,然后跳出该结构。

……otherwise…… %该命令可以不存在,在变量不等于前面所有的检测值的时候,执行此组命令。

end case4、try-catch结构try %只有当matlab执行本组命令发生错误时,后一组命令才会被执行……catch…… %如果此组命令执行又出错,matlab将终止该结构。

end%可以调用lasterr函数查询出错原因。

如果函数的运行结果为一个空串,则表明这组命令被成功执行了。

四、循环1、whilewhile 表达式……end2、forfor x=数值…………end%其中的数值可以是数组;或者是类似下面的表达“1:4”,表示从1到4循环;还可以是“1:0.1:4”,表示以0.1为步长从1到4循环。

五、数组、数组运算和矩阵运算1、数值数组matlab中数组不需要声明。

(1)对一维数值数组赋初值逐个元素输入:x=[1 2 pi/2]冒号生成:x=1:0.1:4定数线性采样法:x=linspace (a,b,n)%相当于第一个数为a,最后一个数为b,以n为采样点数等间距采样。

x=logspace(a,b,n)%相当于第一个数为10a,最后一个数为10b,以n为采样点数等间距采样。

(2)对一维数值数组的寻访x(3) %寻访第三个元素x([1 2 3]) %寻访第1,2,3个元素x(1:3) %寻访第1到3个元素x(3:-1:1) %由前三个元素倒排成子数组x(find(x>0.5)) %由大于0.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)数组运算指令含义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.\s s分别被B的元素除A.^n A的每个元素自乘n次A.^p 对A的各个元素分别求非整数幂p.^A 以p为底,分别以A的元素为指数求幂A+B 对应元素相加A-B 对应元素相减A.*B 对应元素相乘A./B A的元素被B的对应元素除B.\A 同上exp(A) 以e为底,分别以A的元素为指数求幂log(A) 对A的各个元素求对数sqrt(A) 对A的各个元素求平方根f(A) 求A各个元素的函数值A#B 对应元素的关系运算,#代表关系运算符A@B对应元素的逻辑运算,@代表逻辑运算符(2)矩阵运算指令含义A' 共轭转置s*A 标量s分别与A元素之积S*inv(B) B阵的逆乘sA^n A阵为方阵时,自乘n次A^p 方阵A的非整数乘方p^A A阵为方阵时,标量的矩阵乘方A+B 矩阵相加A-B 矩阵相减A*B 矩阵相乘A/B A右除BB\A A左除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是否逻辑值数组。

输出若为1,则是X=A(L) %把L中逻辑值为1对应的A元素取出4、字符串数组(1)字符串数组赋初值 S=['aa''bb']或者:S=char('aa','bb')还可以:S=str2mat('aa',' ','bb') %这里空串会产生空行而:S=str2cat('aa',' ','bb') %这里空串不会产生空行(2) 字符串操作函数int2str %把整数数组转换为串数组num2str %把非整数数组转换为串数组mat2str %把数值数组转换为串数组%请使用help搜索其他的字符串操作函数。

5、元胞数组元胞数组和一般数值数组和字符串数组不同,其元素可以是任意类型和大小的对象。

这和C的结构型数组有些类似。

(1)创建元胞数组有以下两种创建方式:外标识元素赋值:a=char('aa' 'bb');b=1:9;c=2:5;d=[1+2i];A(1,1)={a}; A(1,2)={b}; A(2,1)={c}; A(2,2)={d};内涵的直接赋值:a=char('aa' 'bb');b=1:9;c=2:5;d=[1+2i];A{1,1}=a; A{1,2}=b; A{2,1}=c; A{2,2}=d;(2)元胞数组内容的调取注意在这里()访问的是元胞,用{}访问的是元胞中存储的内容。

比如:a=A(1,1)显示:a=[12 char]而:a=A{1,1}显示:a=aabb所以用{}而不是()调取元胞数组内容。

6、构架数组构架数组和元胞数组类似,但其每个构架(地位相当于元胞数组的元胞)必须划分“域”后才能使用。

看下面的例子:green_house(2,3).name='六号房';green_house(2,3).param.temperature=30;green_house(2,3).param.humidity=10;green_house屏幕显示:23 struct array with fields:nameparam注意:(1)在一个构架上进行的增减域的操作会影响到整个数组。

(2)增减子域不会影响到其他构架。

7、空数组(1)有下面几种产生空数组的方法:a=[]b=ones(2,0) %ones的作用原本是产生一个全1的数组c=zeros(2,0) %zeros的作用原本是产生一个全0的数组d=eye(2,0) %eye的作用原本是产生一个对角元全为1的数组f=rand(2,3,0,4) %rand的作用原本是产生随即数组。

(2)空数组可用于子数组的删除和数组大小的收缩A(:,2)=[]六、M脚本文件和M函数文件、函数句柄m文件分两种:函数和脚本。

1、matlab script file:脚本文件没有输入输出,对工作空间(workspace)中的变量进行操作。

任何可执行的matlab命令都可以写入脚本文件。

相关主题