Matlab初学
一、Matlab的界面认识
![matlab初始界面](https://img-blog.csdnimg.cn/direct/d1e94272a36845dbabfe
1.文件栏主要是对脚本文件的操作
2.变量栏主要是对工作区变量的操作,但一般用得很少,因为如果要查看变量可以直接在工作区双击即可查看
4.环境部分要注意预设和设置路径两个按钮,预设就相当于是设置,可以调节界面,字体,显示语言等;
5.设置路径是在添加第三方工具包的时候需要用到,可以理解为添加插件
6.注释:快捷键为CTRL+R
7.取消注释:快捷键为CTRL+T
8.运行节:相比于其他的IDE中需要选中某段代码才能实现运行部分代码,Matlab提供了一种高效的方式,即设置分节符%%(后面记得加个空格),则用光标选中某个节即可运行某一节代码。
9.设置断点:Matlab设置和VSC一样非常方便,只需要在代码左边点击一下出现红点即可
10.清除断点:点击断点下的那删除线格式 个三角形,就可以选择清除所有断点。
二、Matlab使用
2.1. 脚本语言
a=5+5 %加法,同理减法
b=2^3 %立方,
c=5*2 %乘法
x = 1; %分号用于不显示
y = x + 5
- 循环结构:在MatLab中,循环不使用 { } ,而是用end表示循环的结束(不要求缩进),而且if 或while的条件不需要加 ( ) 。参考下面的例程:
/****for循环****/
for n = 1:10 //表示i从1到10逐次+1,循环十次
x(n) = sin(n*10);
end //终止for循环
/****while循环****/
x = 0;
sum = 0;
while x < 101
sum = sum + x;
x = x + 2;
end
/****if-else语句*****/
if x > 1
f = x^2 + 1;
else if x <= 0
f = x^3;
else
f = 2 * x
end
/*****switch语句******/
num = input('请输入一个数');
switch num
case -1 //注意case后面没有冒号
disp('I am a teacher.');
case 0
disp('I am a student.');
case 1
disp('You are a teacher.');
otherwise //等同于C语言中的 default
disp('You are a student.');
end
2.2. 常用(预定义)的变量
a. 预定义的变量
b. 运算符号
c. 常用数学函数总结
d. 逻辑运算
“等于”和“不等于”
== :表示等于,一个 = 表示赋值
~= :表示不等于,记住,不是感叹号哦!
e. 绘图操作
- 已知点集——plot
- 符号函数——ezplot, fplot
ezplot
fplot
-
图像处理
需要了解的是,在运行Matlab时跳出的fig窗口其实自带了很多编辑图像属性的功能。只需要点开图像属性
即可对图像标题,坐标轴标签等进行设置。 -
三维图形
空间曲线图 —— plot3
plot3
三、应用实例
3.1.基础
1)计算a*6,a=8
clear all %清空
clc % 情况工作区
a=8;
b=a*6;
b
2)用户输入获取x的值,计算y=x*3;
x=input('请输入数字') %input用于接收数字
y=x*2
3)分支结构,比较大小
clear all
clc
a=5;
b=2;
if a>b
fprintf("a大于b")
end
clear all
clc
a=5;
b=2;
if a>b
fprintf("a大于b")
else
fprintf("a不大于b")
end
clear all
clc
x=input('请输入数字:');
c=rem(x,2) %求余数的函数
if c==1
fprintf('x为奇数')
elseif c==0
fprintf('x为偶数')
else
fprintf('非数字')
end
4)循环结构
遍历小于10的数,累加求和
i=0;
sum=0;
while(i<10)
sum=sum+i;
i=i+1;
end
fprintf('累加和为: %d \n', sum);
for a = 1:10
fprintf('值a: %d \n', a);
end
5)嵌套函数
计算一元二次方程
function [x1,x2] = qiantao2(a,b,c)
%定义函数qiantao2计算一元二次函数
d=0; %初始化
function disc
d = sqrt(b^2 - 4*a*c); %计算d
end
disc; %输出d
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end
3.2.不断学习
画出连续时间信号的波形(将其放在一个图形窗口中)
%%注意:subplot要在plot之前,不然绘图容易出错
%M (1)
t=-1.5:0.01:2.5; %定义域范围是[-1.5,2.5]
y1=heaviside(t);
subplot(3,1,1);%三行一列第一幅图
plot(t,y1);
grid on %保留网格
axis([-1.5 2.5 -0.5 1.5]) %限制x轴范围是[-1.5,2.5],y轴范围是[-0.5,1.5]
xlabel('t'); %x轴贴上标签't'
ylabel('y'); %y轴贴上标签'y'
title('u(t)');
%M (2)
t=-2:0.01:5; %定义域范围是[-2, 5]
y2=10*exp(-t)-5*exp(-2*t);
subplot(3,1,2); %三行一列第二幅图
plot(t,y2);
axis auto %自动设置坐标轴,使图像显示效果最佳(这是默认状态)
grid on %保留网格
xlabel('t'); %x轴贴上标签't'
ylabel('y'); %y轴贴上标签'y'
title('x(t)=10e^(^-^t^)-5e^(^-^2^t^)');
%M (3)
t=-7:0.1:7; %定义域范围是[-7,7]
y3=cos(t)+sin(2*pi*t);
subplot(3,1,3); %三行一列第三幅图
plot(t,y3);
axis auto
grid on %保留网格
xlabel('t'); %x轴贴上标签't'
ylabel('y'); %y轴贴上标签'y'
title ('cos(t)+sin(2πt)');
结果
数组创立
A = [1 2 3 ; 4 5 6 ; 7 8 9];
B = [9 8 7 ; 6 5 4 ; 3 2 1];
c = A * B
d = A' %A的转置矩阵,行变列,列变行
e = A(:) %把矩阵竖着排列,里面是冒号
f = inv(A) %逆矩阵
A * f
E = zeros(10,5,3); %三维数组,10行5列,生成全是0
E( : , :, 1 ) = rand(10,5)
E( : , :, 2 ) = randi(5,10,5)
E( : , :, 3 ) = randn(10,5)
二维平面绘图
x: 在0到2π区间,以0.01递增绘点。
三维平面绘图
grid on : 在幕布后面加网格线
axis square :使图形更立体,平面变成正方形