Matlab语言基础.docx
《Matlab语言基础.docx》由会员分享,可在线阅读,更多相关《Matlab语言基础.docx(24页珍藏版)》请在冰豆网上搜索。
Matlab语言基础
一、Matlab的变量与常量
Matlab中变量和常量存储都是相应的数据。
数据类型:
基本类型、构造类型、符号对象
基本类型:
数字型、字符串型
数字型:
整型、浮点型
整形:
无符号、有符号(int8、int16、int32、int641位、2位、4位、8位)
浮点型:
单精度(32位)、双精度(64位)
基本类型:
数组类型(常见)、细胞类型、结构类型、类类型
符号对象(比较少见)
变量:
在运算过程中其数值可以改变的量;
常量:
在运算过程中其数值不改变的量。
变量命名规则:
变数名称是由一个字母开头,其后可以有任意数量的字母、数字或下划线。
在变量命名时尽量使用小写字母,名字要有实在的意义,不要和系统保留的关键字(常量)和函数名相同的名字,容易出错。
MATLAB是区分大小写的,变量名可以是任意长度。
Matlab语言是一种弱类型语言,C语言是强类型语言,变量在复制之前要对它的类型进行严格的申明,不同就会出错,而matlab不需要事先申明。
变量初始化:
1、采用赋值语句初始化变量;
2、用input函数从键盘输入初始化变量,如下:
3、matlab已经定义好了的一些常量:
I、j虚数;Inf无穷大;NaN不定式;pi圆周率;ans特殊的变量。
2、matlab的基本数据结构
标量、向量、数组、矩阵的概念:
标量、向量、数组本质上是特殊的矩阵形式;matlab常用的是二维矩阵;标量1*1的矩阵;向量可以看成是1行或者1列的矩阵;向量是数学中的说法,数组是matlab语言中的说法,但向量和数组在这里指的是同一种数据结构,可以互用。
手动生成矩阵:
行矩阵:
a=[123]
列矩阵:
b=[123]’或b=[1;2;3]
2*2矩阵:
c=[12;34]
使用内置函数生成矩阵:
常用的有ones,eye,zeros,size,length.
利用冒号表达式生成矩阵:
冒号:
用来生成向量,定义数组下标,数组的循环迭代。
生成航向量:
生成列相量:
引用矩阵或矩阵中的元素:
举证可以看成一个一位数组,按列从左至右,从上往下依次排列。
冒号当作下标
e(:
2):
代表全部行元素,2代表第2列
引用第3列2-4行:
指定生成某种矩阵
矩阵的行拼接列拼接:
Size函数:
返回矩阵行列对应的维数;length函数返回行列维数最大的那个值
3、matlab中的空数组和子数组
子数组的概念
子数组的赋值与数组直接赋值的区别
end的用法
Linspace,logspace,reshape
预定义变量:
date,clock,year,month,now,today(和日期处理有关)
空数组
子数组
Linspace函数
用法:
linspace(x1,x2,N)(linspace(x1,x2)默认生成包括x1和x2的100个数)
功能:
linspace是Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量。
其中x1、x2、N分别为起始值、终止值、元素个数。
若默认N,默认点数为100。
注:
linspace(5,100,20)和5:
5:
100的区别在于前者已知元素总个数而不知道步长,后者已知步长不知元素个数,这两者的效果是一样的。
logspace函数
用法:
x=logspace(a,b,n)
功能:
logspace(a,b,n)生成一个(1xn)数组,数据的第一个元素值为a,最后一个元素为b,n是总采样点数。
需要注意的是,此时产生的数组元素在10^a到10^b上并不是均匀分布的,而形成一个对数曲线。
reshape的用法
date,clock,year,month,now,today的用法
4、matlab中的算术运算符
标量运算
矩阵预算
数组运算
运算优先级
标量:
亦称“无向量”。
有些物理量,只具有数值大小,而没有方向,部分有正负之分。
物理学中,标量(或作纯量)指在坐标变换下保持不变的物理量。
用通俗的说法,标量是只有大小,没有方向的量。
+-*/\^
矩阵:
由m×n个数aij排成的m行n列的数表称为m行n列的矩阵,简称m×n矩阵。
magic函数:
生成魔方矩阵
矩阵运算:
A+BA-BA*BA/BA.*BA./B
5、matlab中常见的运算函数
三角、反三角函数,指数、对数函数,圆整函数、绝对值,sum,prod,max,min
复数取实部、虚部、取模
Cross,dot,compan,inv,det,rank,eig,trace(对矩阵进行运算)
圆整
ceil朝着正无穷圆整
floor朝着负无穷圆整
fix朝着0圆整
round四舍五入整
mod取模函数
rem除取余
mod除取整
mean按列求平均值
prob接地
Sum(x,dim)dim=1按列2按行求和
conv可以做多项式乘法
比如,(X^6+X^4+7X+4)*(X^5+X^3+3X+1)用conv函数展开:
复数
6、matlab的字符串及其运算
ASCII码:
AmericanStandardCodeforInformationInterchange的缩写
字符串的数组本质
字符串的生成:
单引号法,数组法
字符串的转换:
abs,double,char,str2num,num2str,upper,lower
字符串:
本质是一个字符数组。
其他语言中也有。
字符经过编码以数字的形式编在电脑里,这种编码形式就是ASCII码。
字符串的生成:
单引号法,数组法。
字符串的转换:
abs将字母转成数字。
double功能类似。
char将字母转成字母。
str2num,num2str,upper,lower
这种方法比较迂回,matlab中有函数直接转换
7、字符串函数及二维字符串
Strcmp(S1,S2),findstr(S,S),strcat(S1,S2),disp(str)
Fprint(format,data)
二维字符串
Strvcat,str2mat
Strcmp(S1,S2)S1,S2两个函数相同则为1,不同则为0Strcmp(S1,S2,n)比较前n个字符
findstr(S1,S)将S1中所有的S以形式的形式返回
strcat(S1,S2)将两个字符进行拼接;利用矩阵形式进行拼接也可以;当两个字符串长度不一样是不可以[S1,S2]这样拼接。
disp(str)将字符串原样输出
二维字符串的生成:
维度不一的时候用空格补齐,这种方法比较麻烦。
Strvcat字符串纵向拼接str2mat与之类似,区别在于str2mat会将空字符生成空行,而前者会直接将其忽略。
8、绘图入门
其他语言绘图特别繁琐,而matlab绘图特别方便简洁。
plot,semilogx,semilogy,loglog,legend,title,grid,xlabel,ylable,hold
plot:
matlab中最简单的绘图命令。
legend(‘在右上角对不同的曲线插入相应的图例’)
9、绘图属性的控制
plot,semilogx,semilogy,loglog,legend,title,grid,xlabel,ylable,hold
线型,颜色,线宽的控制
10、图形窗口菜单及其对数坐标
Semilogx,semilogy,loglog
如有侵权请联系告知删除,感谢你们的配合!