Day02 matlab基础程序结构
一、逻辑结构
1.顺序结构:从上至下依次执行
2.循环结构
(1)for 循环变量=初值:步长:终值
执行语句1
执行语句2
…
end
步长可以省略,默认为1,写为:循环变量=初值:终值;for中可以嵌套for循环
(2)while 条件表达式
执行语句1
执行语句2
…
end
条件表达式成立为真,就执行内部语句,若不成立为假,执行后续语句
3.分支结构
(1)if 条件表达式
语句体
end
(2)if 条件表达式
语句体1
else
语句体2
end
(3)switch 表达式(数值或字符串)
case 数值或字符串1
语句体1
case 数值或字符串2
语句体2
…
otherwise
语句体n
end
注意:该部分逻辑结构的概念与python、C、数据结构中相似,只是使用写法上有些不同
二、绘图
1.二维平面绘图
绘制图时,想要给线条绘制特别的颜色,可以在单引号中添加指定的颜色的参数字符
颜色 | 字符 | 颜色 | 字符 |
---|---|---|---|
红 | r | 粉红 | m |
绿 | g | 青 | c |
蓝 | b | 白 | w |
黄 | y | 黑 | k |
线条线型
线型 | 符号 | 示例 |
---|---|---|
实线 | - | —————————— |
虚线 | – | ------------------------------ |
冒号线 | : | … |
点画线 | -. | -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- |
数据点的标记
符号 | 点类型 | 示例 | 符号 | 点类型 | 示例 |
---|---|---|---|---|---|
· | 点 | ········ | ^ | 上三角(正三角) | 🔺 |
+ | 十字号 | +++++ | v | 下三角(倒三角) | ▽ |
o | 圆圈 | oooooo | < | 左三角 | |
* | 星号 | ******* * *** | > | 右三角 | |
x | 叉号 | xxxxxx | p | 五角星 | ☆ |
s | 正方形 | h | 六角星 | ✡ | |
d | 菱形 |
2.三维立体绘图
图形窗口可以分为若干块,不同块显示不同的子图
3.图形的保存和导出
在生成的图片的窗口选择编辑,点击复制图窗,即可在论文中进行粘贴
文件中,另存为,即可,选择自己需要的类型,写论文时,调整图片大小时,字变得不清晰,在文件,导出设置中进行设置宽度和高度即可,并应用与图形,再去复制图形,粘贴
编辑中,复制选项,可以调整相应的元素,图形属性,也可以调整相应的属性
注意:
(1)matlab使用帮助,在官网进行搜索matlab的帮助中心,在其中搜索相关函数,直接在命令行窗口使用help命令
(2) matlab中无穷大输出的是inf
(3) 在命令行执行代码时,有时候输出变量值结果,有时候不输出,用分号控制,有分号,就不输出,没有就输出
绘图部分示例代码如下:
%% 二维平面绘图
x=0:0.01:2*pi; % 给x赋值,从0到2pi,其中步长为0.01
y=sin(x); % 命y为sin(x)
figure % 新建立一个幕布,也可以不写这一步
plot(x,y) % 绘制当前函数的一个二维的平面图
title('y=sinx(x)')% 给绘制的图取一个标题,单引号中为图的标题
xlabel('x') % x轴的标签
ylabel('sin(x)') % y轴的标签
xlim([0 2*pi]) % 限制x轴绘制的范围为0到2pi
x=0:0.01:20; % 给x赋值,从0到20,其中步长为0.01
y1=200*exp(-0.05*x).*sin(x); % 定义y1
y2=0.8*exp(-0.5*x).*sin(10*x);% 定y2
figure % 建立一个幕布
[AX,H1,H2]=plotyy(x,y1,x,y2,'plot') % plotyy指共用一个坐标系,其中有两个y,但x共有
% matlab默认不同线是不同的颜色,方便观看
% 设置对应的标签,先指定给谁设置,设置标签的数据类型为string,设置标签名字为Slow Decay
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time (\musec)') % 设置x标签
title('Multiple Decay Rates') % 设置标题
set(H1,'LineStyle','--') % 设置H1线为虚线格式
set(H2,'LineStyle',':') % 设置H2线为冒号线
%% 三维立体绘图
t=0:pi/50:10*pi; % 设置t的值为0-10pi,步长为pi/50
plot3(sin(t),cos(t),t) % plot3,绘制三维图
xlabel('sin(t)') % 设置x轴的标签
ylabel('cos(t)') % 设置y轴的标签
zlabel('t') % 设置z轴的标签
grid on % 限制作用,在幕布中+网格线
hold on % 在同一个幕布中绘制多条线,告知matlab后面还有线
hold off % 不保留当前的线了
axis squre % 将图片弄的更立体,横竖斜变成正方形
%% 图形的保存和导出
% 双峰函数
[x,y,z]=peaks(30);
mesh(x,y,z)
grid
%% 图形窗口的分割
x=linspace(0,2*pi,60);
subplot(2,2,1) % 分成2*2的4块,第三个数表示,此图绘制在哪一个位置
plot(x,sin(x)-1);
title('sin(x)-1');axis([0,2*pi,-2,0])
subplot(2,1,2) %分成2行一列
plot(x,cos(x)+1);
title('cons(x)+1');axis([0,2*pi,0,2])
subplot(4,4,3) % 分成4行4列,占第三个位置
plot(x,tan(x));
title('tan(x)');axis([0,2*pi,-40,40])
subplot(4,4,8) % 分成4行4列,占第八个位置
plot(x,cot(x));
title('cot(x)');axis([0,2*pi,-35,35])