第一章、Matlab学习
第一节、基本的语法学习
1.矩阵
-
矩阵一共有两种方法去建立,方法一采用
a=[1,2,3;4,5,6;7,8,9]
的方式建立,方法二采用换行的方式进行,如下:a=[1,2,3 4,5,6 7,8,9]
-
使用a(:)可以建立按列叠加起来的长向量;
-
可以用
rand(size)
建立大小为size*size的空矩阵;
-
2.常用的几个常量
ans 用于结果的缺省变量名
pi 圆周率
eps 计算机的小数
flops 浮点运算次数
inf 无穷大 如 1/0 NaN
不定量 如 0/0
i(j) i=j= 1 −
nargin 所用函数的输入变量数目
nargout 所用函数的输出变量数目
realmin 小可用正实数
realmax 大可用正实数
3.矩阵的共轭
对矩阵求转置时,采用右上角加撇号的方式,就可以求得该矩阵的共轭转置矩阵;
如:
z=1 2 3
4 5 6
7 8 9
则z的转置矩阵为z':
z'=1 4 7
2 5 8
3 6 9
4.对工作台内变量信息进行访问
who 执行该命令可列出工作空间的所有变量;
whos 显示所有的变量,变量的元素个数和所占的字节数等;
size(a) 执行该命令可以得到矩阵 a 的行数与列数;
length(a) 执行该命令后,屏幕上显示出向量 a 的长度。如果 a 是矩阵,则显示的 参数为行数列数中的大者。
5.结构数组的用法
(1).结构数组用于存储某元素不同属性及其属性对应的值,其有两种构造方法:
-
方法一:采用直接赋值的方式,如对于元素
student
,可以采用student.name='John'
对其进行赋值; -
方法二:可以使用函数struct定义的方式来定义结构数组:如,
结构数组名=struct(‘属性 1’,’属性值 1’, ‘属性 2’,’属性值 2’,…)
(2).可以对结构数组采取的操作
结构数组的有关函数
struct 生成和转换为结构数组
fieldnames 查询结构数组的属性名
getfield 查询结构数组的属性值
setfield 设置结构数组的属性值
rmfield 删除属性
isfield 检查是否为数组的属性
isstruct 检查数组是否为结构型
6.细胞数组
细胞数组也是 MATLAB 里的一类特殊的数组。在 MATLAB 里,由于有细胞数组这个数 据类型,才能把不同类型、不同维数的数组组成为一个数组。
(在此处,细胞数组可以将所有的数据类型都整合到一起,如向量、数组、结构数组,多维数组、字符串等等。)
(1).建立细胞数组的方式:
方法一:直接输入对细胞数组中各个元素的定义:
A(1,1)={[1:5;6:10]}
A(1,2)={'Anne cat'}
A(2,1)={3+7i}
A(2,2)={0:pi/10:pi} 方法二:使用cell对细胞数组进行定义,等到使用时可以具体对细胞数组中的各个位置进行赋值,如:
B=cell(3,4)
(此处建立了大小为3*4的细胞数组)
(2).对细胞数组中元素的查看
对细胞数组中的元素进行查看时,大括号{ }括起来的下标为细胞数组的第几个元素,用圆括号()括起来的下标为大括号{ }对应的某个元素的分量。如 :
A{2,2}(1) ------------表示细胞数组A中{2,2}上的元素其1号位置的值;
A{3}(1) ------------表示细胞数组A从左上角开始沿列数第3个元素,其1号位置的值;
(3).对细胞数组的操作
在细胞数组中,可以使用如下的函数进行细胞数组进行操作,包括建立、检索、检测等,具体的函数如下:
celldisp 显示细胞数组的内容 ---------------------celldisp(细胞数组名)
cell 生成细胞数组
cellplot 用图形方式显示细胞数组
num2cell 把数值型转换为细胞型
deal 输入和输出的匹配
cell2struct 把细胞数组转换为结构数组
struct2cell 把结构数组转换为细胞数组
iscell 检验数组是否为细胞型 ---------------------iscelll(细胞数组名)
7.数学运算与函数
(1).基本运算符
+,-,*,\,/,^,
(2).矩阵的运算方法
加法:
c=a+b(表示a矩阵和b矩阵相加赋给1)
乘法:
一般乘法: a*b
点积: dot(a,b)
叉积: cross(a,b)
卷积: conv(a,b) =======a,b必须都为矢量
除法:(一般在解线性方程组时会用到)
x=a\b 如果ax=b,则 x=a\b是矩阵方程的解。
x=b/a 如果xa=b, 则x=b/a是矩阵方程的解。
转置:
c=a' (右上角加转置符号)
求逆:(要求矩阵为方阵。这在矩阵运算中很常用)
x=inv(a)
其余矩阵运算的相关方法:
求行列式(det),矩阵求逆(inv),求秩(rank),求迹(trace), 求模(norm)。
d=eig(A)求矩阵 A的特征值,[v,d]=eig(A)求矩阵 A的特征向量和特征值,这里v的列向量是对应的特征向量。
(3).数学函数
数学函数比较多,在实际的应用中,可以对需要的数学函数进行查询;例如,sqrtm(m)
函数,用于计算m的平方根;
(4).多项式
A.多项式的表示方法
任意多项式都可以用一个行向量来表示,将多项式的各个项用向量的形式表示出来,然后构造出多项式。如:
p=[1 -2 1]
poly2sym(p)
ans=x^2 -2x +1 也可以利用root()函数来求多项式的根,如:
p=[1 -2 1]
roots(p)
ans=
1
1
B.ploy(A)函数
A是一个n×n的矩阵时,此函数返回矩阵A的特征多项式p,p是1+n维向量;A是向量时,此函数返回以向量中的元素为根的多项式。
C.多项式的数组运算
对于一个多项式P,要求在x处的多项式的值的时候,可以使用函数=polyval(P,X)
,即可求得对应出的值;如:
p=[1 -2 1]
polyval(p,6)
ans=25
D.数组在多项式中的计算
在多项式中进行矩阵运算时,可以使用volyvalm(p,x)
函数进行运算,注意:p为对应的多项式向量,x必须为方阵,如:
p=[ 1 3 2]
a=[1,2;3,4]
volyvalm(p,a)
ans=[12,16;24,36]
8.绘图命令
(1).二维图形
A.基本的绘图指令
plot(x,y)函数
:用于在二维界面上进行绘图的函数,图形的x和y刻度均为显性;其使用方法为,如下:
x=linspace(0,2*pi) %首先先定义x的取值范围
y=sin(x) %这一步定义x和y的关系
plot(x,y) %最后用plot()函数绘制对应的图形(x和y均为线性) 可以在同一个平面内画出不同的曲线,方法如下:
x=linspace(0,2*pi)
plot(x,sin(x),x,sin(x)+1,x,sin(x)-1)
或者:
y1=sin(x)
y2=sin(x)+1
y3=sin(x)-1
plot(x,y1,x,y2,x,y3)
也可以用叠图的方式来实现:
plot(x,sin(x))
hold on
plot(x,sin(x)+1)
hold on
plot(x,sin(x)-1)
其他几个绘图的函数与plot()函数的使用方法相似,如:
plot 命令使用线性坐标空 间绘制图形;
loglog 命令在两个对数坐标空间中绘制图形;
semilogx(或 semilogy) 命令使用x轴(或y轴)为对数刻度,另外一个轴为线性刻度的坐标空间绘制图形;
polar 使用极坐标空间绘制图形。
B.图形绘制的信息控制
以plot()函数为例,plot()指令可以接受一系列的字符串的输入,用于控制曲线的格式、颜色、线标等;语法为:
plot(x,y,"CLM")
C:代表曲线的颜色,主要有:
b(蓝色) c(青蓝色)
g(绿色) k(黑色)
m(紫黑色) r(红色)
W(白色) y(黄色)
L:代表线条的格式,主要有:
- (实现)
-- (虚线)
: (点线)
-. (点虚线) M:曲线所用的线标,主要有:
O 圆形
+ 加号
X 叉号
* 星号
^ 超上三角形
> 朝右三角形
< 朝左三角形
square 方形
diamond 菱形
pentagram 五角星形
hexagram 六角星形
关于绘图进一步的学习在百度文库有一个详细的教程,网址见http://wenku.baidu.com/link?url=5fqRZRAC6r_Q660-0W3jfh-fC7AR0oozBEdBqCparSOYp6uGCARH1Lla3nQp8s1EE5DHyHJIiVREOFRUEWBNtej4aozdladqAUVw5o5IAOW
(2).
(3).
9.
10.
未完待续》》》》》》》》》》》》》》》》》》》》》