matlab 坐标轴科学记数法表示与轴范围的影响

相关命令

xlim([xmin xmax]) x轴显示范围
ylim([ymin ymax]) y轴显示范围
xticklabel xtick x坐标轴标签
yticklabel ytick x坐标轴标签

介绍

这一行的命令,意思是读取当前坐标轴的刻度值,然后转换为文本进行标记

1
set(gca,'xticklabel',get(gca,'xtick'),'yticklabel',get(gca,'ytick'));  

如果,后续命令需要修改x、y轴的显示大小,如将x轴从[5,20]调整为[0,20],那么需要在设置区间后再改变坐标轴label,通过以下代码展示。

因此如果之后需要调整坐标轴内容,那么一定要注意代码书写顺序。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clc
clear
close all
x=[5:20];
y=x.^2;
figure()
% 图1:先将标签修改为文本,然后修改区间显示,文本标签重新调整位置,已经不是真实值
subplot(1,2,1)
plot(x,y,'-*',LineWidth=2)
set(gca,'xticklabel',get(gca,'xtick'),'yticklabel',get(gca,'ytick'));
xlim([0 30]);
title('图1')

% 图2:先调整区间,然后将区间转化为文本,显示正常
subplot(1,2,2)
plot(x,y,'-*',LineWidth=2)
xlim([0 30]);
set(gca,'xticklabel',get(gca,'xtick'),'yticklabel',get(gca,'ytick'));
title('图2')

示例图片-2022-05-29-19-27-51

补充命令

关于xlimylim的使用,Matlab官网也有文档说明。

1
2
3
4
5
6
7
xlim
% 获得当前x轴的范围,如[5 20]
xlim([0 20])
% 设定x轴范围为[0 20]

xlim([0 inf])
% 设定x轴范围为从0开始到默认最大;-inf即为默认最小

Unique

数组中的唯一值 - MATLAB unique - MathWorks 中国
https://ww2.mathworks.cn/help/matlab/ref/double.unique.html

语法

C = unique(A)
C = unique(A,setOrder)
C = unique(A,occurrence)
C = unique(A,___,'rows')
C = unique(A,'rows',___)
[C,ia,ic] = unique(___)
[C,ia,ic] = unique(A,'legacy')
[C,ia,ic] = unique(A,'rows','legacy')
[C,ia,ic] = unique(A,occurrence,'legacy')
[C,ia,ic] = unique(A,'rows',occurrence,'legacy')

说明

C = unique(A) 返回与 A 中相同的数据,但是不包含重复项。C 已排序。

  • 如果 A 是表或时间表,则 unique 按排序顺序返回 A 中的唯一行。对于时间表,当确定行是否唯一时,unique 会考虑行时间和行值,并按行时间对输出时间表 C 排序。
  • 如果 A 是分类数组,则排序顺序由类别的顺序确定。

C = unique(A,setOrder) 以特定顺序返回 A 的唯一值。setOrder 可以是 ‘sorted’(默认值)或 ‘stable’。

C = unique(A,occurrence) 指定遇到重复值时应返回哪个索引。occurrence 可以是 ‘first’(默认值)或 ‘last’。

C = unique(A,___,'rows')C = unique(A,'rows',___)将 A 中的每一行视为单个实体,并按排序顺序返回 A 中的唯一行。必须指定 A,而 setOrder 和 occurrence 是可选的。‘rows’ 选项不支持元胞数组。

[C,ia,ic] = unique(___) 还可使用上述任何语法返回索引向量 ia 和 ic。

  • 如果 A 是向量,则 C = A(ia)A = C(ic)
  • 如果 A 是矩阵或数组,则 C = A(ia)A(:) = C(ic)
  • 如果指定了 ‘rows’ 选项,则 C = A(ia,:)A = C(ic,:)
  • 如果 A 是表或时间表,则 C = A(ia,:)A = C(ic,:)