目录:
Matlab数据类型:
- 数字
- 字符与字符串
- 矩阵
- 元胞数组
- 结构体(相当于Python中的字典)
矩阵:
![]()
matlab的eye(N)函数用来产生N*N大小的单位矩阵,也就是N行N列的单位矩阵,单位矩阵就是对角线元素为1 的方阵啦。
magic(n)生成一个n阶幻方。
一个n阶幻方,就是把1-n^2排成一个nxn的矩阵,使得矩阵的每行、每列,以及主、副对角线上面的n个数之和都相等(容易证明,这个和等于n*(n^2+1)/2)。
元胞数组:
%%元胞数组
A=cell(1,6)%%类似于结构体数组
A{2}=eye(4)%%matlab是从1开始第二个小块
A{5}=magic(5)
结构体:
books = struct('name',{{'yushiqi','lijiahui'}},'price',[30,40]);
books.name%属性
books.name(1)%%这样取出来的是cell
books.name{1}%%这样取出来的是一个字符串
矩阵的运算:
A=[1,2,3,4,5,6]%矩阵
B=1:2:9%%起始值跳越值和末尾值
C=repmat(B,3,1)%%3行每行一个B
D=repmat(B,3,2)%%3行每行2个B
E=ones(4,4)%%生成一个4行4列都为1的矩阵
E=zeros(4,4)%%生成一个4行4列都为0的矩阵只能生成0或者1不能为其他值
A=[1,2,3;5,8,9]
B=[5,6,8;9,10,6]
C=A-B
D=A+B
E=A*B'%%矩阵相乘第一个矩阵的行数和第二个矩阵的列数相同A*B的转置
F=A.*B%%加.是对应项相乘G=A/B%%是A*B的逆矩阵
H=A./B%%对应项相除
1.对于方阵A,则存在逆矩阵inv(A) 2.对于非方阵,并不存在逆矩阵,但可以使用pinv(A)求其伪逆 inv( A ) = pinv( A ) 但pinv的计算复杂度较高。
矩阵的下标:
A=magic(5)
B=A(2,3)%%取A矩阵中第2行3列的元素
C=A(3,:)%%取A中的第三行所有列
D=A(:,4)%%取A中的第4列
[m,n]=find(A>20)%%找大于A矩阵中大于20的索引值
[m,n]=find(A>10)
D=A(3,:)
[m,n]=find(D>2)MAtlab逻辑与流程控制:
for的循环控制:
%%for 循环变量=初值:步长:终值 %%执行语句 %%执行语句 %%执行语句 %%执行语句 %%end 步长默认值为1可以不写
例题:1到1000平方求和
例题1到100的阶乘求和:
( 利用的是for循环嵌套)
while的循环结构:
while 条件表达式 执行语句 执行语句 执行语句 end
(满足条件就执行)
例题:求1到9999的和
if end结构:
例子没啥好说
if else end结构体:
也简单没啥说
switch case end结构:
也简单
二维平面绘图:
注释:Matlab中pi是圆周率 ".*"向量或矩阵相乘必须用这个符号
x=0:0.001:20 y1=200*exp(-0.05*x).*sin(x) y2=0.8*exp(-0.5*x).*sin(10*x) figure%创建幕布 [X,Y1,Y2]=plotyy(x,y1,x,y2,'plot')%共用一个X轴的两条y图像 set(get(X(1),'ylabel'),'string','slow Decay')%Y1轴的标签不太理解这里的用法 set(get(X(2),'ylabel'),'string','slow Decay') xlabel('TIME (\musec)') %x轴的标签 title('Multiple Decay Rates')%图像的标签 set(Y1,'LineStyle','-')%改变Y1线的属性 set(Y1,'LineStyle',':')%改变Y2线的属性
关于set函数和get函数的理解:
为了获得和改变句柄图形对象的属性只需要两个函数。函数get返回某些对象属性的当前值。使用函数get的最简单语法是get(handle, ‘ PropertyName’ )。例如: >> p=get(Hf_1, ‘position’ ) 返回具有句柄Hf_1图形窗口的位置向量。 函数set改变句柄图形对象属性,使用语法set(handle, ‘PropertyName’ ,value)。 » set(Hl_a, ‘color’ , ‘r’ ) 将具有句柄Hl_a的对象的颜色设置成红色。
三维立体绘图:
t=0:pi/50:10*pi plot3(sin(t),cos(t),t) xlabel('sin(t)') ylabel('cos(t)') zlabel('t') grid on%加网格线 axis square%将图像立体化
![]()
大致就先更新到这里等以后在深入学习再补充
就是稍微学了一点不全面如有错误望指正