matlab 学习记录

基础知识

1. 末尾加不加“;”的区别
		a=10;  加分号不会显示ans结果,编写长串代码这样会显得界面简洁
		a=10
2. 注释: %
3. 不等于: ~=

续行书写

>>s = 1-1/2+1/3+...    % '...' 表示续行书写 用于单行代码太长时使用
1/4-1/5

设置当前文件夹

先建立一个文件夹,然后在命令行窗口输入

>> cd 建立文件夹的路径

函数总结

sin(p1/2)弧度
sind(90)角度
abs(x)求实数的绝对值、复数的模、字符串的ASCII码
round四舍五入规则取整
ceil向上取整
floor向下取整
fix舍去小数取整
rem(m,10)求m除以10的余数,其中m可以是矩阵A,即矩阵A中每个元素除以10 的余数
isprime(n)n为素数返回1
sqrt(x)根号下
exp(x)e的指数
>>save mydata a x将变量 a x 保存在mydata.mat 文件中
>>load mydata下次打开文件,就可以载入这个.mat文件
linspace(a,b,n)从a到b一共生成n个
D=sub2ind(size(A),[1,2;2,2],[1,1,;3,2])参数1:由矩阵A行数和列数组成的向量,size(A):返回的是矩阵行数和列数组成的向量;参数2:行下标;参数3:列下标。将矩阵中元素的行列数转换为序号数,比如获取行1列1的元素在矩阵中的序号为多少
[I,J]=ind2sub(S,D)S:由矩阵A行数和列数组成的向量;D:序号。将矩阵元素序号转换为对应元素的行列下标。例如:[I,J]=ind2sub([3,3],[1,3,5]) 表示对一个三行三列的矩阵的第1,3,5个序号的元素求其对应的行列下标
reshape(A,x,y)将矩阵A维度改为x行y列 其余不变
find(表达式)返回满足表达式的序号构成的 向量
clear清除当前工作区的全部变量
lower(c )将大写字母转换成小写
upper( c )将小写转换为大写
str2double( c)将字符串转换为数值
num2cell(0:34)将 [0,1,2,…,34] 的 向量 转换为 数值 形式

向量与矩阵

1. 行向量
	a=[1 2 3 4]  中间用空格
	a(3) 取出第三个元素
	
2. 列向量
	b=[1;2;3;4] 中间用分号
	
3. 矩阵
	A=[1 2 3;4 5 6;7 8 9]
	A(1,2) 取出矩阵第一行第二个元素
	
	利用已经建立好的矩阵,拼接成更大的矩阵
	B = [-1 2 3;3 2 1;1 3 1]
	C = [A B;B A]

	复数矩阵
	D = A + B * i
	
4.创建等差 “:”
	为创建 A=1,2,3,...,100
	A=[1:100]    等差=1
	
	x = 1:2:100 %生成1-100 步长为2 的行向量
	
	B=[1:2:100]  等差=2

矩阵引用

C(3 , :)    取出矩阵第三行所有值
A(i : i+m ; k:k+m) 取出i到i+m行 k到k+m列的元素
A(2:3,1:2:5)引用第2-3行 第1,3,5列元素
A(3,2)  第三行第二列元素
A(end,:) 取最后一行所有元素
A(:) 将矩阵每一列都堆在一起,形成新的一列的列向量
A([1,4],3:end) 第一行和第四行 从第三列到最后一列的所有元素
A = [1 2 3;4 5 6]
>>A(3)  % 取出序号为3 的元素
ans =  2  %矩阵按列存储元素

删除矩阵元素

将元素置空

>>A(:,[2,4])=[] %将第二和第四列的所有元素置空,即删除元素,矩阵的维度会缩小

**注:**置空与赋值为0 不一样,赋值为0 ,矩阵原有维度不变,置空后维度会缩小

矩阵算法

	A+2 每个元素➕2
	A/2 每个元素除以2
	A^2 矩阵A的平方

点运算
是指对应元素进行相关运算

A .* B对应元素相乘
A * B两个矩阵在矩阵意义下的计算

例如:

>> x=0.1:0.3:1;
>> y = sin(x) .* cos(x) 
这里必须用 .*  因为假设 x 是列向量,那么 sin(x) 和 cos(x) 都是和 x 同维列向量,此时如果只用 * 而不用 .* 会导致两个列向量相乘,不满足矩阵向量相乘的前提

特殊矩阵

eye(n)          n维单位矩阵
diag([2 3 4 ])   对角线矩阵,主对角线元素为2 3 4 
zeros(m,n)              全零矩阵
zeros(size(A))  产生与A同样大小的0矩阵
ones         全1 矩阵
rand      (0,1)均匀分布的随机矩阵
randn    均值为0 方差为1 的标准正态分布
magic(3)  三阶魔方矩阵
vander(1:5) 产生1 2 3 4 5 向量为基础的范德蒙矩阵
hilb(n)  n阶希尔伯特矩阵
compan(p)  伴随矩阵,其中p 为多项式的系数向量

矩阵变换

diag(A)提取矩阵A主对角线 形成列向量
triu(A)提取主对角线及以上的元素
A .’转置
A’共轭转置
inv(A)求逆矩阵

矩阵求值

det(A)行列式
rank(A)
trace(A)

矩阵特征值与特征向量

eig(A)全部特征值
[X,D]=eig(A)D为特征值构成的对角阵,X为对应特征向量

字符串

>>s ='banana'  %单引号
>>s(1:3)
ans=
ban

字符串比较

按照ASCII码 逐个比较

>>'www0' >= 'W123'
ans=
 1 1 1 0

字符串函数总结

abs(s)获取字符串s 中每个字符的ASCII码
char(s)将ASCII码S 转换为字符串
strcmp(s1,s2)比较字符串s1 s2是否相等
strncmp(s1,s2,n)比较字符串s1 s2前n个字符是否相等
strcmpi(s1,s2)忽略大小写,比较字符串s1 s2是否相等
strncmpi(s1,s2,n)忽略大小写,比较字符串s1 s2前n个字符是否相等
findstr(s1,s2)返回短字符串在长字符串中的 开始位置
strrep(s1,s2,s3)将s1中所有s2替换为s3

基本语法

输入

>> A = input('请输入');

输出

>> s = 'Hello';
>> disp(s)

if-elseif-else-end

if 条件1
	语句1
elseif 条件2
	语句2
else
	语句3
end

switch

switch 数值
case value1
	语句1
case value2
	语句2
otherwise
	语句3
end	

while

while 表达式
	语句
end 

for

for n=1:2:100
	语句
end

函数文件的定义与调用

函数定义

在函数文件中

function 输出形参表 = 函数名(输入形参表)
函数体语句

% 有多个形参时,用逗号分隔,多个输出形参之间除了逗号,还需要 方括号括起来,构成输出矩阵

例:
求半斤为r的圆的周长与面积

function [s,p] = fcircle(r)
s = pi *r*r;
p=2*pi*r;

函数调用

[输出实参表]=函数名(输入实参表)
>>[s,p] = fcircle(10) % 调用并传入 r=10 实参

匿名函数

>>f = @(x,y)x^2+y^2      %别名 = @ (参数)表达式
>>f(3,4)
ans = 
25

EXCEL 数据

读取

information=xlsread('1.xlsx')          读取excel表中 全部 数据信息
information=xlsread('1.xlsx','B2:D4')  读取excel表中B2:D4表格区域数据信息

绘图

二维曲线

折线

>>x=[2,3,1,3];
>>y=[1,3,1,1];
>>plot(x,y)

基本绘图

1. plot(x,y)
2. hold on 
   plot(x1,y1)
   plot(x2,y2)
   hold off
   % hold on/off 是把两个曲线放在一个图中,不然只会绘制出x2,y2的图
3.subplot() 在一个figure上放多个plots -> 05初阶绘图1:11:36

美化

1.plot(x,y,'ok-')     绘制线条是圈圈黑色实线
2.plot(x1,y1,'ok-',x2,y2,'sb--',x3,y3,'dr:')    一幅图中绘制多个 
  legend('第一条曲线名称','第二条曲线名称','第三条曲线名称')   加图注,不然分不清哪条曲线是啥
3.title(‘图名称’)
4.xlabel(‘x轴名称’)
  ylabel(‘y轴名称’)

来源于b站

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值