matlab入门

matlab学习

快速入门手册:https://ww2.mathworks.cn/help/pdf_doc/matlab/index.html?s_cid=doc_ftr

分号可以让结果不立马显示,但是会计算

创建矩阵

a = [1,2,3,4] 1*4矩阵

a = [1,2,3,4;5,6,7,8] 2*4矩阵

a = zeros(5,1) 5*1的全0矩阵 ones(2,3)全1矩阵 rand(3,3)小于1的随机矩阵 magic(4)幻方矩阵(行列对角和相等)randn(3,3)正态分布的矩阵

a + 10 即矩阵所有数+10,还可以用-,sin等符号和函数

a'转置矩阵

p = a*inv(a) 方阵乘法,其中inv是对矩阵a求逆 diag(a) 对角的值 fliplr(a)左右翻转矩阵

元素级乘法:a.*a 还有除法 .^幂运算

矩阵串联:A=[a,a] (行) 或 A=[a;a] (列)

删除行和列,如删除第二列:a(:,2)=[]

format 类型 让显示数据显示为某种类型 rat

复数可用i j 表示

数组索引

a(3,4)=4 修改3行4列的值 A(8)按顺序向下遍历到第8个

不能访问矩阵范围外的值,但是可以写入,这时矩阵会扩张 例如a=magic(3) 错误:text = a(3,4) 正确:a(3,4)=5

引用矩阵多个元素使用冒号:a(1:3,2)表示1-3行2列,单独使用冒号表示全部引用 如a(:,2) 所有行的2列

创建等距向量start:step:end 如 b=0:10:100 则b=[0,10,20,30,40,50,60,70,80,90,100] step默认为1

逻辑下标,即x(判定式),如x(x>3)筛选出所有>3的值

工作区变量

whos查看所有工作区变量

save filename可以保存当前工作区变量

load filename可以加载保存的工作区变量

clear 清除工作区所有变量 clear y 清楚变量y

文字和字符

在字符串中使用双引号要用两个:"hello""world""yes" 显示为:hello"world"yes

strlength(A)对字符串A求长度

字符串数组创建和矩阵类似,用分号

字符数组:单引号 a='hello' 括号访问元素 如:a(3)

串联字符数组:[a,'hello']

调用函数

多个返回值用方括号,如:[a,b] = max(A);

disp('aaa')显示字符串 clc 清空命令好窗口

二维图和三维图

二维图

plot(x,y,color)画图 color可以是'r-','ro','r*',

xlabel('横坐标名称') ylabel('纵坐标名称') title('图表名') 每次调用plot这些都会清空

在当前绘图的基础添加,使用hold on,使用Hold off可以关闭

legend()标识线条名

三维图

surf(x,y,z)画图

subplot()显示子图

脚本编程

edit filename 创建脚本

注释用%号

循环  for n=3:N

表达式

end

条件 if a>b

表达式

elseif 判定

表达式

end

Switch value

case 'a'

表达式

otherwise

表达式

end

while 表达式

end

函数:

函数赋值:a = @sin 用@符号获取sin的地址,然后a可以像sin一样使用

function r = name(value1,value2,...)

end

匿名函数: sqr = @(x)x^2

接受字符参数的函数可以写为:f a b c 等价于f('a','b','c') 区别是前者没有返回值

全局变量声明:global a

帮助文档

doc 函数 查看函数帮助

help 函数 查看函数简明的帮助

help elfun 查看高等数学函数

help matfun 查看矩阵函数

输入命令

长输入用...可以另起一行输入

clf reset 重置窗口属性

grid on/off 打开关闭图像网格

savefig/saveas 保存图像/另存为图像

openfig/imread 读取图像/将标准行图像读入

print 打印图片

其他用法

元胞:相当于集合,用花括号括起每个子集合,如A = {B,C,D}

访问:用花括号访问,如A{1}

类型转换:char(s) double(s)

结构体:

S.name=1 可以自由添加属性

S = struct(key1,value1,key2,value2)

S.key1返回所有key1属性值数组

函数

perms(1:N) 返回一个N!行N列的所有1->N的排列

或者V,V是一个数组,返回V的所有排列

prod(A)

如果A是矩阵,那么计算每列的乘积

如果A是一维数组,那么计算所有元素的乘积

cell(a,b,c...)创建多维数组,数组内容是空矩阵

reshape(X,M,N)把数组X里的元素排列为M*N的矩阵

length(数组) 求数组长度

pascal(n) 创建一个杨辉三角矩阵,其中i行i列为杨辉三角的i层,每个数为其左边和上边数之和

randi(range,row,col) 创建一个随机矩阵,其中range为范围,row为行,col为列

eye(m,n)返回m*n的单位矩阵,eye(n)返回n*n的单位矩阵

det(A) 判断A是否可逆,是1,否0

cond(A)计算矩阵求逆的条件度,范围为1到INF(奇异矩阵)

kron(X,Y)把矩阵X的每一个元素和矩阵Y相乘,此为张量积

null(A)求Ax=0 的解

rand(A)求A的秩

rref(A)返回A的阶梯矩阵

chol(A)分解,如:R=chol(A)则,R'*R=a

isequal(A,B) 判断矩阵A,B是否相等

sqrt(A)平方根

nthroot(A,n) A开n方

sqrtm(A) 返回B,B*B=A

eig(A) 返回V,D,其中V是A的特征向量,D是A的特征值对角矩阵

mean(A) 获得A每列平均值

std(A) 获得A每列标准差

isnan(A)检测是否为NaN

figure(n)打开并将指针放在第n个窗口

axis([xmin,xmax,ymin,ymax]) 设置坐标轴范围 ,axis auto设置为自动,axis squre 设置x,y相同,axis equal设置增量相同,axis on显示off隐藏

text(x,y,string)在图像中添加附注

PS:

奇异矩阵:行列式为0的矩阵

Tips:

求解Ax=b x=A\b,求解xA=b,x=b/A

单位矩阵A^0

  • matlab入门已关闭评论
    A+