欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Matlab内容整理嘿呀

程序员文章站 2022-06-22 16:29:03
Matlab知识点整理相信小伙伴百度matlab中不知道的内容,看起来眼花缭乱。为了适应新手水平,特此记录一些知识点方便学习复习。判断语句的写法:if语句的写法if %条件语句1%若满足条件语句1则执行elseif %条件语句2%若不满足条件语句1而且满足条件语句2则执行elseif %条件语句3%若不满足条件语句1,2且满足条件语句3则执行else%以上条件都不满足则执行end以上语句中if和end必须匹配,elseif和else根据需求写,不是代码的必须部分。ifel...

Matlab知识点整理

相信小伙伴百度matlab中不知道的内容,看起来眼花缭乱。为了适应新手水平,特此记录一些知识点方便学习复习。

判断语句的写法:

if语句的写法

if %条件语句1
	%若满足条件语句1则执行
elseif %条件语句2
	%若不满足条件语句1而且满足条件语句2则执行
elseif %条件语句3
	%若不满足条件语句1,2且满足条件语句3则执行
else
	%以上条件都不满足则执行
end

以上语句中if和end必须匹配,elseif和else根据需求写,不是代码的必须部分。ifelse的数量根据题目需要和自己想法写。
对于一个if语句,elseif,else都属于if语句的一部分,故只写一个end。

a=70;
if a>=90 %如果大等于90,则输出‘优秀’
	disp('真优秀');
elseif a>=60 %如果大于等于60且小于90,则输出‘合格’
	disp('合格');
else %如果小于60,则输出‘不合格!’
	disp('不合格!');
end

switch语句的写法

switch语句只能对一个元素进行是否相等的判断

a %定义一个变量参与到switch
switch a %告知switch语句你要进行比较的变量是a
	case %判断值1
		%如果满足a==判断值1,则运行
	case %判断值2
		%如果满足a==判断值2,则运行
	case %判断值3
		%如果满足a==判断值3,则运行
	otherwise	
		 %a不与上面任何一个判断值相等
end

otherwise不是代码的必须部分,写不写都可以。

a=80
switch a
	case 100 %可以将a与一个数值进行比较。如,词句判断a是否与100相等
		disp('Wonderful!');
	case {90,91,92,93,94,95,96,97,98,99} %也可以将a与一些数值进行比较。
	%此处将a与90,91,92,93,94,95,96,97,98,99进行比较
	%当于多个数值进行比较的时候,应用‘{’ ‘}’表示数据集
		disp('Very good');
	case {80,81,82,83,84,85,86,87,88,89}
		disp('Good');
	case {70,71,72,73,74,75,76,77,78,79}
		disp('Okay')
	otherwise
		disp('APPLY YOURSELF!');
	end

循环语句的写法

for语句与while语句最大的不同是:在不出现特殊判断停止循环的情况下(即没有continue语句和break语句时候),for语句的循环次数是已知的,while循环的循环次数是未知的。因为for循环的循环次数由一个规定好的计数器来进行限制,而while循环的循环次数是根据while语句后面的循环边界而定

for语句的写法

for %循环计数器
	%循环语句
end
a = 1;
for i=1:100
	a=a*i;
end	

这个程序就计算了100!

while语句的写法

while %循环边界
	%循环语句
end
a= 1;i=1;
while a<=100
	a=a+i^2;
	i=i+1;
end;

这个循环就执行了计算从1开始计算,自然数的平方和第一个大于等于100的值。
对于while循环特别需要注意题目中问的问题和你计算的值之间的关系。

break,continue的运用

在一些特殊情况下需要提前结束循环,或者跳过某一步循环,就会分别用到break语句和continue语句。

break语句:
从A=[23,45,12,45,36,57,84,53,6,46,23,546,7568,59,5,23,56,246,3,75464,745734,63,2];中选出前 六个小于100的偶数;

n=0; %用n计数
for i=1:length(A)
	if mod(A(i),2)==0	%选出偶数
		sprintf('%d ',A(i));
		n=n+1; %记录已经新找到一个偶数
	end
	if n==6	%如果找到的偶数数量等于6了,就跳出循环
		break;
	end
end

continue语句:
对于A=[23,54,12,76,34,85,23,54,78],B=[1,0,1,0,0,1,0,0,1],让将A的数据加入到C中,除非对应位置的B数组是0

for i=1:length(A)
	if B(i)==0
		continue;
	end
	C(i)=A(i);
end


图形绘制:

常用函数的总结:

Matlab内容整理嘿呀
plot():
Matlab内容整理嘿呀
subplot()

x=1:10;
y=sin(x);
subplot(2,2,1),plot(x,y,'m--');
subplot(2,2,2),plot(x,y,'*');
subplot(2,2,3),plot(x,y,'d');
subplot(2,2,4),plot(x,y,'v');

plot3(): 绘制三维图形
eg.绘制抛物曲面????=????????+????????在−????≤????≤????、−????≤????≤????区间内的图像

X=-1:0.1:1;
Y=X';
X1=X.^2;
Y1=Y.^2;
x=ones(3,1);
x=ones(length(Y),1);
y=ones(1,length(X));
X1=x*X1;
Y1=Y1*y;
Z=X1+Y1;
subplot(1,2,1),mesh(X,Y,Z);
subplot(1,2,2),surf(X,Y,Z);

axis 设置坐标轴形状 eg. axis square 立方体坐标轴
box box on封闭坐标轴 box off取消封闭坐标轴
grid grid on加网格线,grid off取消网格线
hold hold on保持之前的图形,hold off取消保持之前的图形
Matlab内容整理嘿呀
bar():、barh(): 柱状图
bar()竖直柱状图 barh()水平柱状图
bar(x,y,‘group’)/bar(x,y,‘stack’) group和stack是柱状图的类型
bar3()、bar3h(): 三维柱状图
area(): 条形图、面积图-------填充图
pie(),pie3() 饼状图、三维饼状图
hist(): 直方图
stem(),stem3(),stair(): 二维离散图形,三维离散图形,二维阶跃图形

添加标注函数

title(): 添加标题
legend(): 添加图例
ylabel(): 添加y轴标注
xlabel(): 添加x轴标注

x=1:0.01:10;
y1=x.^2;
y2=x;
plot(x,y1,x,y2);
title('y=x^2&y=x');
xlabel('x:1~10');
ylabel('y');
legend('y=x^2','y=x');


常用函数总结:


输入输出

输入语句:
input(’’): (单引号中必须有输入提示)eg.a=input(‘请输入a:’);
输出语句:
sprintf() 运用到低级I/O转换字符:
1.%c:输出单个字符
2.%d:输出有符号的十进制数
3.%f:以小数的格式输出
4.%s:输出字符串
eg. sex=‘male’; age=32; weight=80.2;
sprintf(‘I am %s, I am %d years old and i’m %f kg’,{sex,age,weight})
注意:要显示输出时,不要再sprintf()后面加分号
disp() disp括号中的内容必须是字符、字符串
eg. disp(‘Hello!’); a=30;disp(num2str(a));


其他函数

Matlab内容整理嘿呀
deg2rad(): 角度制转弧度制 deg2rad(30)=0.5236
rad2deg(): 弧度制转角度制 rad2deg(pi/3)=60.0000
Matlab内容整理嘿呀
补充:当想计算e的值时,可使用函数exp(1)代替;
Matlab内容整理嘿呀
abs() **取绝对值(或复数的模)**abs(-10)=10;

round(): 四舍五入取整 round(3.3)=3;round(3.5)=4;
fix(): 向0取整fix(3.3)=3;** fix(3.5)=3;fix(-3.3)=-3;fix(-3.5)=-3;
floor(): 向下取整 floor(3.9)=3;floor(-3.1)=-4;
ceil(): 向上取整 ceil(-3.9)=-3;ceil(3.1)=4;
Matlab内容整理嘿呀
Matlab内容整理嘿呀
Matlab内容整理嘿呀
A=[1,2,3,4,5];B=[4,5,6,7];C=union(A,B);D=intersect(A,B);
C:[1,2,3,4,5,6,7];D:[4,5];
Matlab内容整理嘿呀
rmfield(): 删除结构体中某个域名及其对应的值

student.name='bob';
student.sex='male';
student.num=123123;
rmfield(student,'num');

student的num就被删除了


数组中常用的函数

diag(): 创建对角线方阵
a=diag([1,2,3])
a= 1 0 0
0 2 0
0 0 3
ones(): 创建全1矩阵
a=ones(5);创建5x5的全1方阵
a=ones(2,4);创建2x4的全1方阵
zeros创建全0矩阵
用法同ones()
eye创建单位矩阵(线代中的E)

linspace(): linspace(a,b,c) 把a到b等分成c份
eg. a=linspace(1,2,5); a:[1.0000 1.2500 1.5000 1.7500 2.0000];

矩阵的转置 其实不是函数 A=[1,2,3];B=A’;
B:[1;2;3]

reshape(): 改变矩阵的形状
A=[2,3,4,5;6,7,8,9;]
B=reshape(A,4,2);
B:[ 2 3; 4 5;6 7;8 9]

size(): 分别输出数组的行、列
length(): 输出数组最长的边

ind2sub(): 将全下标转变为双下标
sub2ind(): 将双下标转变全下标
A=[1,2,3;4,5,6;7,8,9];
[i,j]=ind2sub(size(A),5);
k=sub2ind(size(A),2,3);
i:2
j:2
k:8


数学运算中的函数:

Matlab内容整理嘿呀
polyval(): 根据多项式计算具体数值
poly2str(): 将多项式转换为字符串
polyder(): 求多项式导数

p=[4 3 2 1]
a=polyval(p,4)
b=poly2str(p,'x')
c=polyder( p)

a:313
b:4 * x^3 + 3 * x^2 + 2 * x + 1
c:[ 12 6 2 ]

interp1()
interp1(原数据横坐标,原数据纵坐标,插入值的横坐标,插值类型)
eg.

x=0:10;
y=sin(x)+0.2;
xx=0:0.01:10;
yy=interp1(x,y,xx,'liner') %线性插值

Matlab内容整理嘿呀
interp1不输入插值类型时候默认线性插值
Matlab内容整理嘿呀
三重积分:triplequad
低阶法积分求 f ( x ) = s i n ( x ) f(x)=sin(x) f(x)=sin(x)从0到pi的积分,且误差小于1e-6

f=@(x)sin(x)
q=quad(f,0,pi,1e-6);

Matlab内容整理嘿呀


字符串中的函数

eval(): 运行字符串中的内容

str='1+4';
eval(str);

ans=5

Matlab内容整理嘿呀
Matlab内容整理嘿呀


文件输入输出函数

save(): 保存mat数据
load(): 载入mat数据
xlswrite(): 保存数据到excel表格中去
xlsread(): 从excel表格中读取数据

save('test'); %将所有变量保存到默认文件夹,命名为test.mat的文件中
save('test','a'); %将变量a保存到默认文件夹,命名为test.mat的文件中
load('test'); %从test.mat文件中读取数据
load('test','a'); %从test.mat文件中读取变量a

xlswrite('123','a') %将变量a存入到123.xls文件中
xlsread('123',1) %从123.xls中的sheet1中读取数据


注意事项:

end指最后一个元素/行
当取范围时倒序取时,步幅必须写出 eg. 9:-1:1
数组用单下标计数时是竖着数的
subplot计数时是横着数的
cell数组的索引:双下标用{},单下标用()

本文地址:https://blog.csdn.net/Chipmunkyle/article/details/110791793

相关标签: 笔记