您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > matlab基本语法
■基本操作;%分号:禁止显示结果%%注释,Ctrl+R注释,Ctrl+T取消注释%%%定义块,Ctrl+Enter仅运行本块代码%{...%}%注释块...%句尾...表示续行(使用三个以上的点...续行)clearXXX%清除某个内存变量clearall;%清空所有内存变量(可用工具栏)clc,home%相同,清除命令窗口(可用工具栏)clf%清除图形窗口(clearfigure)ans%最后计算结果(Python中为_)edit%打开M文件编辑器guide%打开GUI文件编辑器helpplot%查找plot()函数帮助exit,quit%退出Matlab!%执行DOS命令cd%设置当前工作目录,缺省为'..\MATLAB\R2013a\bin'dir%显示当前工作目录/指定目录下所有目录和文件date%获取当前日期now%获取当前时间tic,toc%启动和结束计时器■变量操作who%查看内存变量(在工作空间中可以直接查看)whosx%显示x的数据类型(变量详细信息)save%将所有变量保存至缺省文件matlab.matsavedata.mat%将所有变量保存至文件(注.mat可以省略)savedata.matabc%将变量a,b,c保存至文件(变量不能有逗号)loaddata.mat%载入数据文件中所有变量loaddata.matab%载入数据文件中指定变量■格式化数值显示方式format%使用缺省值,相当于formatshortformatshort%5位定点方式(四位小数),系统缺省方式formatshorte%5位浮点方式(四位小数加科学计数法)formatshortg%5位自适应方式formatlong%15位定点方式(十四位小数)formatlonge%15位浮点方式(十四位小数加科学计数法)formatlongg%15位自适应方式formatbank%银行方式(两位小数)formatrat%近似有理数显示(分数表示),相当于rats(x)formatcompact%无空行显示formatloose%有空行显示注:系统缺省设置为formatloose(空行显示),如需设置为无空行显示,需进行以下操作:Preference-CommandWindows-Numericdisp=compact■数值操作symsxy%定义变量,不能逗号(分大小写,长度不过19字符x=2e-3或2E-3%浮点数默认双精度,单精数必须single()转换x=2+2i,y=3j%虚数(1i不能省略1,不影响自定义变量i,j使用)x~=y%注意py不等于为或!=x=input('enternum:')%提示输入fprintf('%0.3f\n',pi)%%d整,%0.3f浮,%e科学计数,%g自动选择^,sqrt(x)%乘方开方(乘方与vb相同,与py的**方式不同)abs(x)%绝对值或向量长exp(x)%自然指数,e^xlog(x),log2(x),log10(x)%自然对数ln(x),以2,10为底的对数round(x),fix(x)%四舍五入取整,截位取整roundn(pi,-6)%保留3位(命令行无法显示,变量窗口可显示)ceil(x),floor(x)%天花板取最近大整数,地板取最近小整数rats(x)%转成分数表示********a=mod(10,3);%取余数a=mod(10,-3);%取补数a=max(x);b=min(x)%取数组(列向量)的最大最小值[v,pos]=max(x)%取数组(列向量)的最大值及位置sin(x),cos(x),tan(x)%注意matlab使用弧度,不是角度!!asin(x),acos(x),atan(x)%sin(pi)不等于0,而是eps.sinh(x),cosh(x),tanh(x)asinh(x),acosh(x),atanh(x)常数:pi%3.1415926...eps%无穷小inf,-inf%正无穷大,负无穷大nargin,nargout%函数输入变量数,输出变量数intmax,intmin%int32的最小最大值realmin,realmax%double的最小最大值intmax,intmin('int32')%int/uint8,16,32,64的最大最小值realmax,realmin('double')%sigle,double的最大最小值nan%非数值变量类型判断class(x)%判断x变量类型isnan(x)%判断x是否为非数值类型isinf(x)%判断x是否为无穷数isfinite(x)%判断x是否为有限数isnumeric(x)%判断x是否为数值型(整型或浮点型)isinteger(x)%判断x是否为整型isreal(x)%判断x是否为实数isfloat(x)%判断x是否为浮点数isa(x,'integer')%判断x数值类型:numeric,integer;int/uint8,16,32,64,single,double■类型转换str2num('123.456')%类型转换:字串→数字(相当py中int,long,float)num2str(123.456)%类型转换:数值→字串(相当py中str)num2str(pi,'%0.3f')%带格式转换,类似sprintf()int2str(123)%整数转字串,返回'123'(较少用)char([495051])%类型转换:数值→字符(相当py中chr)int32('123')%类型转换:字符→数值(相当py中ord)int32(123.456)%强制转换:float→uint8(无int,long,float)注:mat无int,long,float型,数值输入默认double;数值类型为int/uint8,16,32,64,single,double十种;数值转换字串时将字串按字符数组处理,字符串的转换应该使用num2str,str2num;注:uint8自动将255→255,0→0,不需要再进行x(x255)=255,x(x0)=0判断!double(2)+int32(2)%double与int8,16,32,single运算结果降级double(2)*true%double与逻辑型,字符型计算仍为doublesingle(2)*true%single不能整数计算!与逻辑,字符型计算不变int8(2)+int32(2)×%不同类型整数不能+-*/运算■进制转换dec2bin(23,8)%十进制转8位二进制(位数8可省略),返回字符串'00010111'bin2dec('1001')%二进制转十进制,只能字符串输入,返回doubledec2hex(10,3)%十进制转16进制(位数3可省略),返回字符串'00A'hex2dec('00A')%16进制转十进制,只能字符串输入,返回double■位操作A=7;B=5;%A=0111,B=0101bitand(A,B)%按位与,ans=0101bitor(A,B)%按位或,ans=0111bitxor(A,B)%按位异或,ans=0010bitcmp(uint8(85))%按位取反,'01010101'返回'10101010'bitshift(2,2)%移位M=magic(10)M1=bitget(M,1)%取8bit矩阵的最低位M1=bitset(M,1,0)%将矩阵最低位全部设置为0/1■字符串操作a='aa';b='bb';c='abcd';%字串采用单引号,py单双引号皆可d='we''rehere';%字串中的'用双单引号''定义len=length(a)%获取字串长度[r,len]=size(a)%获取字串长度,r行数=1,len列数=字串长度x=[a,b,c]%[]字符串连接(不删空格,strcat的补充方式!)s1={a,b,c};s2={c,b,a};%{}字符串数组,此时,class(a)=char,class(s1)=cells1(1)→cell,s1{1}→char%注意:class(s1(1))=cell,class(s1{1})=charx=d(5:10);%取子串x=d(end:-1:1);%字符串倒排x=strcat(a,b,c)%字符串连接(删除句尾空格),如果不想删除空白符,应使用[a,b,c]方式连接x=strcat(s1,s2)%字符串数组连接(不删空格)x=blanks(10)%生成10个空格的字符串x=deblank(a)%去掉后续空格x=strtrim(a)%去掉开头和结尾的空白(空格,制表,换行)isstr(x)%测试是否为字符串isletter(x)%测试是否为字符isspace(x)%测试是否为空格all(isstrprop(ss,'alpha'))%测试是否全为字母all(isstrprop(ss,'digit'))%测试是否全为数字all(isstrprop(ss,'alphanum'))%测试是否全为数字字母strcmp(a,b)%测试字符串是否相同strrep(c,'c','xx')%将字符串c中的c字符替换为xx,返回'abxxd'strtok(c,'c')%取字符串c中c字符之前的部分,返回'ab'disp('需显示的字符串')%直接输出sprintf('PI=%0.7f',pi)%格式化输出■字符串数组(元胞数组)ss={'a','','b'}%定义字符串数组,不能用[](成为字符串)xx=[ss,ss]%元胞数组合并,不能用{}(成为复合元胞数组)ss(cellfun('isempty',ss))=[]%删除字符串数组中的空元素regexp(ss,'.{3}','match')%将字符串按3个字符分离,去掉结尾不足3个字符的regexp(ss,'.{3}','split')%获取结尾不足3个字符的sp=[regexp(ss,'.{3}','match'),regexp(ss,'.{3}','split')];sp(cellfun('isempty',sp))=[]ss='adfasdfasf'%定义字符串ss=[ss,blanks(abs(mod(length(ss),-3)))]%不足3位用空白补充sp=regexp(ss,'.{3}','match')%按3个字符分离ss='123.4,567.8,901.2'%定义字符串sp=regexp(ss,',','split')%字符串分离■时间操作ss='2014-04-01';d1=datenum(ss);%将日期字符串转换为天数(自0000年起)d2=datestr(ss);%将日期串转换为字串(缺省为'01-Apr-2014')d3=datevec(ss);%将日期串转为日期向量[年,月,日,时,分,秒]n=today-datenum('2013-12-31')%计算日期串的年天数n=weeknum('2014-04-01');%计算日期串的年周数n=weekday('2014-04-01');%计算日期串的星期数(注意周日为1,周一为2...)today;=datenum(date)%获取当前日期的天数(整型)date;=datestr(today)%获取当前日期的字符串datevec(date);=datevec(today)%整型向量(无时分秒),[2014,4,1,0,0,0]formatshortgclock;%获取当前时间矢量(有时分秒)now;%获取当前时间的天数(有时分秒)■逻辑操作&|~%标量/数组/矩阵的与或非(python采用and,or,not)&&||%标量(表达式)的与或,&&左边不成立不计算右边!!if(a&&b/a0),...%可避免被0除■向量/数组定义x=[12345]%数组使用[]标识(元素之间采用空格或逗号分隔)x=1:12%同[1:12]中括号可省略,即1,2,3...10(不同于python通过range()产生数组)x=1:2:12%通过(起点,步长,终点)创建
本文标题:matlab基本语法
链接地址:https://www.777doc.com/doc-2887317 .html