MATLAB实用术语与绘图命令详解
1. 引言
MATLAB 作为一款强大的科学计算软件,拥有丰富的功能和实用的命令。了解其常用术语和绘图命令,对于高效使用 MATLAB 至关重要。本文将详细介绍 MATLAB 中的算术和逻辑运算符、符号以及绘图命令等内容。
2. 算术和逻辑运算符
2.1 基本算术运算符
- + 和 - :用于对相同大小的变量进行加法或减法运算,变量可以是矩阵、向量或标量,也可对矩阵进行标量的加减运算。
A = [1 2; 3 4];
B = ones(2);
A + B
A - B
5 + 0.5
7 - 4
A = ones(3);
B = A + 2;
C = 3 - A;
- * 和 / :用于变量的乘法或除法运算,但要保证运算在数学上可行。乘法运算要求第一个矩阵的列数等于第二个矩阵的行数,也可对矩阵进行标量的乘除运算。
4 * 3.2
4 / 2.3
A = [1 2; 3 4];
B = ones(2);
A * B
A / B
A = ones(3);
B = A/3;
C = A*4;
2.2 元素级运算符
- . *:用于对相同大小的数组进行元素级乘法运算,常用于函数构造。
A = [4 3; 2 1];
B = [1 2; 3 4];
C = A.*B;
x = 1:5;
f = x.*sin(x);
g = (3*x+4).*(x+2);
- ./ :用于对相同大小的数组进行元素级除法运算,常用于函数构造,也可处理参数为标量的情况。
A = [4 3; 2 1];
B = [1 2; 3 4];
C = A./B;
x = 1:5;
f = x./sin(x);
g = (3*x+4)./(x+2);
x = [1 2 3 4 5];
y = 2./x
- .ˆ :用于对相同大小的数组进行元素级幂运算,常用于函数构造,也可处理参数为标量的情况。
A = [4 3; 2 1];
B = [1 2; 3 4];
C = A.ˆB;
x = 1:5;
f = x.ˆ(x+1);
g = (3*x+4).ˆx;
x = 1:5;
y = 2.ˆx;
z = x.ˆ2;
2.3 其他运算符
- * * :用于求解线性方程组 $Ax = b$,相当于 $x = A^{-1}b$。
A = [1 2; 3 4];
b = [2; 3];
x = A\b;
- == :用于检查相等性,常用于逻辑语句中。
if i==7
disp(' i is seven ')
else
disp(' i is not seven ')
end
x = 1:12;
mod(x,3)==0
- ∼= :用于检查不相等性,常用于逻辑语句中,但使用时需注意顺序变化可能导致的不同含义。
if i˜=7
disp(' i is not seven ')
else
disp(' i is equal to seven ')
end
x = 1:12;
mod(x,3)∼=0
- >、>=、<、<= :用于检查大于、大于等于、小于、小于等于关系,常用于逻辑语句中,也可用于数组。
if i>7
disp(' i is greater than seven ')
end
if i>=7
disp(' i is greater than or equal to seven ')
end
x = 1:12;
x>7
x>=7
if i<7
disp(' i is less than seven ')
end
if i<=7
disp(' i is less than or equal to seven ')
end
x = 1:12;
x<7
x<=7
- all、and、any、find、not、or、xor :这些都是逻辑运算符,用于不同的逻辑判断。
all(x.ˆ2>0)
x = 1:12;
all(x>0)
if and(x>7,x<9)
disp(' x is between 7 and 9')
end
x = 1:12;
and(x>7,x<9)
any(x<0)
x = 1:12;
any(x>10)
x = 1:10;
[i]=find(x.ˆ2>26);
if not(x>=7)
disp(' x is not greater than or equal to 7')
end
x = 1:12;
not(x>=7)
if or(x<7,x>9)
disp(' x is less than 7 or greater than 9')
end
x = 1:12;
or(x<7,x>9)
x = [0 0 1 1];
y = [0 1 0 1];
xor(x,y)
3. 符号
3.1 连接与注释符号
- … :用于连接多行代码,但不能用于字符串内。
x = 1:10;
f = x.ˆ2+sqrt(x.ˆ2+1) ...
+ cos(x)./x;
- % :表示该行剩余部分为注释,也可用于消除代码中某些行的执行,还可用于代码帮助信息。
% This code calculates the value
% of x times sin(x)
f = x.*sin(x);
% and the value of cos(xˆ2)
g = cos(x.ˆ2); % where x can be a vector.
3.2 输出与分隔符号
- ; :用于抑制输出,可在语句末尾或命令集末尾使用,也可用于矩阵内行的结束。
a = ones(2);
b = ones(2); c = ones(2);
d1 = ones(2); d2 = ones(2)
A= [ 1 2; 3 4];
- : :用于设置向量时界定值,也可用于引用矩阵的整行或整列。
x1 = 1:12
x2 = 1:2:13
A = [11 12 13; 21 22 23; 31 32 33];
A(1,:)
A(:,2)
A(:,:)
A(:,1:2)
A(1:2:3,:)
A(1:2,1:2)
- , :用于分隔需要反馈的命令集,分隔矩阵特定行的元素,以及分隔函数的参数。
a = 1, b = 2
A = [1,2,3,4;5,6,7,8];
x = linspace(0,1,200);
3.3 其他符号
- ’ ‘ :用于包围字符串,以及向各种函数传递参数。
a = 'Do robots dream of electronic sheep?'
x = 1:12;
y = x.ˆ2;
plot(x,y,'LineWidth',2)
- ‘ :用于求矩阵的复共轭转置。
A = [1+2*i 2-i; 3 4+i];
B = A';
- .’ :用于求矩阵的转置,建议在不涉及复矩阵问题时使用。
A = [1+2*i 2-i; 3 4+i];
B = A.';
- (space) :可用于分隔矩阵元素,但不能用于分隔命令。
A = [1 2 3; 4 5 6];
B = [ 1:3 ; 3 2 1];
- . :作为数学小数点,也用于文件名的分隔。
- [ ] :用于包围向量或矩阵的元素。
A = [1 2 3 5 6 7];
B = [1 2 3;
3 4 5];
ms = ['Vector array' ' of strings'];
- ( ) :用于包围数学表达式和函数的参数列表。
x= 1:12
y = 1./(x.ˆ2+1);
z = x.*sin(y);
4. 绘图命令
4.1 句柄的概念
在绘图前,需要了解句柄的概念,它是一个变量,可用于访问对象的属性。
x = 1:12; y = x.ˆ2;
h = plot(x,y)
get(h)
set(h,'MarkerSize',10)
4.2 基本绘图设置命令
- axes :用于初始化一组坐标轴。
figure(1)
h = axes
figure(2)
h = axes('position',[0.2 0.2 0.6 0.6])
- axis :用于设置绘图的范围,可用于二维或三维绘图,还有其他变体。
x = 0:pi/20:pi; y = sin(x);
plot(x,y)
axis([-pi/2 pi/2 -1 1])
t = linspace(0,2*pi);
x = cos(t);
y = sin(t);
z = t;
plot3(x,y,z)
grid on
axis([-1.5 1.5 -1.5 1.5 -pi/2 2*pi])
axis off
axis equal
axis square
axis tight
4.3 绘图类型命令
- bar :用于生成数据的条形图。
x = [1 2 3 4 5];
y = [13 12 9 8 15];
bar(x,y)
- barh :用于生成数据的水平条形图。
x = [1 2 3 4 5];
y = [13 12 9 8 15];
barh(x,y)
- hist :用于生成数据的直方图,可指定 bins 的数量。
y = [1 2 3 43 32 54 33 2 4 53 5 63 21 1 5 2];
hist(y)
- loglog :用于生成数据的自然对数对自然对数的图形。
x = [1e-3 1e-2 1e-1 1 1e1 1e2];
y = [10e-3 10e-2 10e-1 10 10e1 10e2];
loglog(x,y)
- plot :用于设置图形和绘制数据,有多种变体。
x = -1:0.1:1;
y = x.ˆ3;
plot(x,y)
plot(x,y,'go')
plot(x,y,'LineWidth',2)
- plot3 :用于绘制三维直线图。
x = 0.:0.1:3.0;
y = x.ˆ2;
z = 3*x+1;
plot3(x,y,z)
grid on
4.4 图形操作命令
- clf :用于清除当前图形。
clf
- close :用于关闭图形,有多种语法。
close
close(4)
close all
close(h)
- figure :用于将请求的图形置于前台,若不存在则创建。
figure
figure(3)
figure(h)
- gca :返回当前坐标轴的句柄,可用于显示和修改其属性。
x = 1:12; y=x.ˆ2;
plot(x,y)
h = gca
get(h)
- gcf :返回当前图形的句柄,可用于显示和修改其属性。
x = 1:12; y = x.ˆ2;
plot(x,y)
h = gcf
get(h)
- get :用于提取对象的特定属性。
x = 1:12; y = x.ˆ2;
plot(x,y)
h = gcf
a = gca
get(h,'Color')
get(a,'YTick')
- ginput :用于获取鼠标在当前图形上点击的坐标,可用于获取根的初始估计值。
x = 0:pi/20:4*pi;
y = sin(x);
plot(x,y)
[xp,yp]= ginput
n = 10;
[xp,yp] = ginput(n)
- gplot :用于使用顶点和邻接矩阵绘制图形。
xy = [0 0;1 0;
1 1; 0.5 0.5];
A = [0 1 0 0;
1 0 1 1;
0 1 0 1;
0 1 1 0];
gplot(A,xy,'-*')
axis equal
axis off
- grid :用于在图形中添加或关闭网格。
grid on
grid off
grid
- hold :用于停止覆盖当前图形,可用于在图形上绘制多条线。
hold on
hold off
hold
x = 0:pi/20:pi;
y = sin(x);
z = cos(2*x);
clf
plot(x,y)
hold on
plot(x,z)
hold off
- legend :用于为图形添加图例,描述线条。
x = 1:10;
y = x.ˆ2;
z = sin(x);
plot(x,y,x,z)
legend('xˆ2','sin x', 0)
- semilogx :用于生成 $y$ 对 $\ln x$ 的图形。
x = linspace(1,100,30);
semilogx(x,log(x))
- semilogy :用于生成 $\ln y$ 对 $x$ 的图形。
x = linspace(1,100,30);
semilogy(log(x),x)
- set :用于定义对象的特定属性。
x = 1:12;
y = 1./x;
h = plot(x,y)
set(h,'LineWidth',4)
- subplot :用于设置图形的子元素,并指定当前子图。
subplot(4,2,3)
for j = 1:8
subplot(4,2,j)
text(0.5,0.5,int2str(j),'FontSize',24)
end
- text :用于为图形添加有用的标签。
x = -1:0.1:1;
y = sin(x.ˆ2);
plot(x,y)
h = text(0,0.5,'sin xˆ2')
set(h,'FontSize',18)
- title :用于设置图形或子图的标题。
x = 0.0:0.1:5.0;
y = 1-exp(-x);
plot(x,y)
title('f(x) = 1-eˆ{-x}','FontSize',18)
- xlabel, ylabel :用于设置 $x$ 和 $y$ 轴的文本。
x = linspace(-2,2,30);
y = (x - 3).ˆ2;
plot(x,y)
hx = xlabel('x values')
hy = ylabel('y = (x-3)ˆ2')
set(hx,'FontSize',16)
set(hy,'FontSize',16)
4.5 绘图命令总结表格
| 命令 | 功能 |
|---|---|
| axes | 初始化一组坐标轴 |
| axis | 设置绘图范围 |
| bar | 生成条形图 |
| barh | 生成水平条形图 |
| clf | 清除当前图形 |
| close | 关闭图形 |
| figure | 显示或创建图形 |
| gca | 返回当前坐标轴句柄 |
| gcf | 返回当前图形句柄 |
| get | 提取对象属性 |
| ginput | 获取鼠标点击坐标 |
| gplot | 绘制图形 |
| grid | 添加或关闭网格 |
| hold | 停止覆盖图形 |
| legend | 添加图例 |
| loglog | 绘制自然对数图形 |
| plot | 绘制二维图形 |
| plot3 | 绘制三维图形 |
| 输出图形到文件 | |
| semilogx | 绘制 $y$ 对 $\ln x$ 图形 |
| semilogy | 绘制 $\ln y$ 对 $x$ 图形 |
| set | 定义对象属性 |
| subplot | 设置子图 |
| text | 添加标签 |
| title | 设置标题 |
| xlabel, ylabel | 设置坐标轴文本 |
4.6 绘图操作流程图
graph LR
A[开始绘图] --> B[创建图形 figure]
B --> C[初始化坐标轴 axes]
C --> D[设置绘图范围 axis]
D --> E{选择绘图类型}
E -- bar --> F[绘制条形图 bar]
E -- barh --> G[绘制水平条形图 barh]
E -- plot --> H[绘制二维图 plot]
E -- plot3 --> I[绘制三维图 plot3]
E -- hist --> J[绘制直方图 hist]
E -- loglog --> K[绘制对数图 loglog]
E -- semilogx --> L[绘制 y 对 ln x 图 semilogx]
E -- semilogy --> M[绘制 ln y 对 x 图 semilogy]
F --> N[添加网格 grid]
G --> N
H --> N
I --> N
J --> N
K --> N
L --> N
M --> N
N --> O[添加图例 legend]
O --> P[添加标签 text]
P --> Q[设置标题 title]
Q --> R[设置坐标轴文本 xlabel, ylabel]
R --> S[保存图形 print]
S --> T[结束绘图]
通过以上对 MATLAB 算术和逻辑运算符、符号以及绘图命令的详细介绍,相信你能更好地掌握 MATLAB 的使用,进行更高效的科学计算和图形绘制。
5. 运算符使用注意事项
5.1 矩阵运算规则
在使用
*
和
/
进行矩阵乘法和除法运算时,要特别注意矩阵维度的匹配。乘法运算要求第一个矩阵的列数等于第二个矩阵的行数,否则 MATLAB 会报错。例如:
A = [1 2; 3 4];
B = [1 2 3; 4 5 6];
% 以下运算会报错,因为 A 的列数 2 不等于 B 的行数 3
C = A * B;
5.2 元素级运算符与普通运算符的区别
普通运算符
*
、
/
进行的是矩阵的乘法和除法运算,而元素级运算符
.*
、
./
是对数组的对应元素进行运算。在函数构造中,要根据需求正确选择运算符。例如,计算 $f(x) = x \sin(x)$ 时,需要使用元素级乘法运算符
.*
:
x = 1:5;
f = x.*sin(x);
5.3 逻辑运算符的使用场景
逻辑运算符
==
、
∼=
、
>
、
>=
、
<
、
<=
常用于条件判断语句中,帮助程序根据不同的条件执行不同的操作。例如,判断变量
i
是否大于 7:
if i > 7
disp(' i is greater than seven ');
end
同时,逻辑运算符也可用于数组,返回一个布尔数组。
6. 符号使用技巧
6.1 注释的重要性
注释符号
%
在 MATLAB 代码中起着至关重要的作用。它不仅可以帮助开发者理解代码的功能和逻辑,还可以在调试代码时暂时禁用某些行。例如:
% 这是一个计算 x 乘以 sin(x) 的代码
f = x.*sin(x);
% 暂时禁用下面这行代码
% g = cos(x.ˆ2);
6.2 分号的使用
分号
;
用于抑制输出,在批量初始化变量或执行不需要显示结果的操作时非常有用。例如,同时初始化多个矩阵:
a = ones(2);
b = ones(2);
c = ones(2);
d1 = ones(2);
d2 = ones(2); % 只有 d2 的初始化结果会显示
6.3 冒号的灵活运用
冒号
:
在设置向量和引用矩阵元素时非常灵活。可以用于创建等差数列,也可以引用矩阵的整行或整列。例如:
% 创建从 1 到 10 的等差数列
x = 1:10;
A = [1 2 3; 4 5 6; 7 8 9];
% 获取 A 的第一行
first_row = A(1, :);
7. 绘图命令的综合应用
7.1 多图绘制示例
在一个图形窗口中绘制多个子图,可以使用
subplot
命令。以下是一个绘制 4 行 2 列子图的示例:
for j = 1:8
subplot(4, 2, j);
text(0.5, 0.5, int2str(j), 'FontSize', 24);
end
7.2 图形美化技巧
通过设置图形的属性,可以使图形更加美观和易读。例如,使用
set
命令设置线条宽度、颜色等属性:
x = -1:0.1:1;
y = x.ˆ3;
h = plot(x, y);
set(h, 'LineWidth', 2, 'Color', 'r'); % 设置线条宽度为 2,颜色为红色
7.3 图形保存与输出
使用
print
命令可以将图形输出到文件,支持多种文件格式,如 Postscript、JPEG 等。例如,将当前图形保存为 JPEG 格式:
print -djpeg90 output.jpg
8. 总结与展望
8.1 内容总结
本文详细介绍了 MATLAB 中的算术和逻辑运算符、符号以及绘图命令。算术和逻辑运算符包括基本算术运算符、元素级运算符和其他运算符,用于进行各种数学运算和逻辑判断;符号在代码的连接、注释、输出控制等方面发挥着重要作用;绘图命令则提供了丰富的功能,可用于创建各种类型的图形。
8.2 学习建议
对于初学者来说,建议先掌握基本的运算符和符号的使用,再逐步学习绘图命令。通过实际编写代码和调试,加深对这些知识的理解和掌握。同时,可以参考 MATLAB 的官方文档和在线教程,获取更多的帮助和示例。
8.3 未来应用展望
MATLAB 在科学计算、工程设计、数据分析等领域有着广泛的应用。随着技术的不断发展,MATLAB 的功能也在不断完善和扩展。未来,我们可以利用 MATLAB 进行更复杂的数据分析、机器学习和深度学习等任务。
8.4 关键知识点表格
| 类别 | 关键知识点 | 示例代码 |
|---|---|---|
| 算术和逻辑运算符 |
+
、
-
、
*
、
/
、
.*
、
./
、
.ˆ
、
\
、
==
、
∼=
、
>
、
>=
、
<
、
<=
、
all
、
and
、
any
、
find
、
not
、
or
、
xor
| 见前文各运算符示例 |
| 符号 |
...
、
%
、
;
、
:
、
,
、
' '
、
'
、
.'
、
(space)
、
.
、
[ ]
、
( )
| 见前文各符号示例 |
| 绘图命令 |
axes
、
axis
、
bar
、
barh
、
clf
、
close
、
figure
、
gca
、
gcf
、
get
、
ginput
、
gplot
、
grid
、
hold
、
legend
、
loglog
、
plot
、
plot3
、
print
、
semilogx
、
semilogy
、
set
、
subplot
、
text
、
title
、
xlabel
、
ylabel
| 见前文各绘图命令示例 |
8.5 学习流程总结图
graph LR
A[学习基础] --> B[掌握运算符和符号]
B --> C[学习绘图命令]
C --> D[实践应用]
D --> E[优化与拓展]
E --> F[探索高级应用]
通过对这些内容的学习和实践,相信你能够更加熟练地使用 MATLAB 进行科学计算和图形绘制,为你的学习和工作带来便利。
超级会员免费看
622

被折叠的 条评论
为什么被折叠?



