matlab导入txt文件数据并绘图
- 1. 生成mat文件
- 2. 用plot函数绘图
- 3. figure图显示汉字
- 4. 根据X和Y坐标数据生成对应曲线
- 4.1 有两份数据,X坐标和Y坐标,根据这两个坐标数据生成对应曲线
- 4.2 生成的多条曲线放置在一张图中
1. 生成mat文件
打开matlab, 这是用的是matlab R2019a
点击导入数据
找到自己想处理的的文件,打开
然后在matlab 工作区就可以看到这个mat文件,右键这个文件可以另存到专门的地方
2. 用plot函数绘图
新建一个plot函数
打开plot函数,写代码
close all;
clc;
close all;
load('CTSMCYt.mat'); # 加载需要处理的 .mat文件
x = CTSMCYt(1:2000,1); # 用前2000个数据,第一列代表 x
y = CTSMCYt(1:2000,2);
xr = CTSMCYt(1:2000,3);
yr = CTSMCYt(1:2000,4);
vr = CTSMCYt(1:2000,5);
wr = CTSMCYt(1:2000,6);
ve = CTSMCYt(1:2000,7);
we = CTSMCYt(1:2000,8);
xe = CTSMCYt(1:2000,9);
ye = CTSMCYt(1:2000,10);
t = 0:0.02:40-0.02; # 时间,采样时间为0.02s
# 以输出位置跟踪误差为例 , 具体代码含义不做解释
# 位置跟踪误差
figure(2);
# subplot(3,1,2)
plot(t, xr - x,'b', t, yr - y, 'r' ,'linewidth',1.5);
set(gca,'FontName','Times New Roman','FontSize',9);
xlabel('time(s)'); ylabel('Tracking errors');
set(gca,'FontName','Times New Roman','FontSize',9);
set(gcf, 'unit', 'centimeters', 'position', [10 5 8 4.2])
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
axis([0 40 -0.4 0.4]);
set(gca, 'YTick', [-0.4:0.2:0.4])
h=legend('$x_e$', '$y_e$');
set(h,'Interpreter','latex'); grid;
## 图上面添加小图
h1=axes('position',[0.33 0.34 0.385 0.2]);
axis(h1);
plot(t, xr - x,'b', t, yr - y, 'r' ,'linewidth',1.5);
set(gca,'FontName','Times New Roman','FontSize',9);
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
axis([10 20 -0.1 0.1]);
set(gca, 'YTick', [-0.1:0.1:0.1])
set(gca, 'XTick', [10:5:20]);
grid;
写好之后,点击运行
3. figure图显示汉字
- 坐标以及图例显示汉字
- 图形折点和坐标对应
close all;
load('data111.mat'); % 加载需要处理的 .mat文件
load('data111S1.mat');
Pb = data111(1:5,1); % 用前5个数据,第一列代表Pb
Fe = data111(1:5,2);
W = data111(1:5,3);
Nie = data111(1:5,4);
t = 0.3:0.3:1.8-0.3; % (折点和坐标对应)
figure(1);
% subplot(3,1,2)
plot(t,Pb,'-+b',t,Fe,'-*c',t,W,'-om',t,Nie,'-sr','linewidth',1.5);
set(gca,'FontName','Times New Roman','FontSize',9);
xlabel('\fontname{宋体}射线强度\fontname{Times New Roman}/MeV');
ylabel('\fontname{宋体}质量吸收系数\fontname{Times New Roman}\mu_m(cm^{2}/g)');
set(gca,'FontName','Times New Roman','FontSize',9);
% set(gcf, 'unit', 'centimeters', 'position', [10 5 8 4.2])
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
axis([0 1.5 0 0.4]);
set(gca, 'XTick', [0:0.3:1.5])
set(gca, 'YTick', [0:0.1:0.4])
h=legend('铅','铁','钨','镍合金');
set(h,'FontName','宋体','Interpreter','latex');
grid;
4. 根据X和Y坐标数据生成对应曲线
4.1 有两份数据,X坐标和Y坐标,根据这两个坐标数据生成对应曲线
4.2 生成的多条曲线放置在一张图中
clear;
clc;
close all;
load('xITSMC.mat');% 加载第 1 条曲线 X 轴数据
load('yITSMC.mat');% 加载第 1 条曲线 Y 轴数据
load('xITSMO.mat');% 加载第 2 条曲线 X 轴数据
load('yITSMO.mat');% 加载第 2 条曲线 Y 轴数据
load('xr.mat'); % 加载第 3 条曲线 X 轴数据
load('yr.mat'); % 加载第 3 条曲线 Y 轴数据
xITSMC = xITSMC(1:40000,1);
yITSMC = yITSMC(1:40000,1);
xITSMO = xITSMO(1:40000,1);
yITSMO = yITSMO(1:40000,1);
xr = xr(1:40000,1);
yr = yr(1:40000,1);
figure(1);
h1 = plot(xITSMC, yITSMC, ':m','linewidth',1.5); % 第一条曲线
hold on;
h2 = plot(xITSMO, yITSMO, 'b','linewidth',1.5); % 第二条曲线
hold on;
h3 = plot(xr, yr, '--g','linewidth',1.5); % 第三条曲线
set(gca,'FontName','Times New Roman','FontSize',12);
xlabel('X (m)','FontSize',12); ylabel('Y (m)','FontSize',12); % \itX 表示斜体的X
axis([-0.2 1.6 -0.2 1.6]);
set(gca, 'YTick', [-0.2:0.6:1.6]);
set(gca, 'XTick', [-0.2:0.6:1.6]);
h=legend([h1,h2,h3],'ITSMC','ITSMC+SMO','Reference','Location','north','Numcolumns',3 ,'FontSize',10);
set(h,'Interpreter','latex');
grid;
% 图上面添加小图
h=axes('position',[0.55 0.3 0.15 0.4]); % 右(增) 上(增) 长(增) 高(增)
axis(h);
plot(xITSMC,yITSMC,':m',xITSMO,yITSMO,'b',xr, yr, '--g','linewidth',1.5);
set(gca,'FontName','Times New Roman','FontSize',12);
set(gca,'GridLineStyle',':','GridColor','k','GridAlpha',1);
axis([1.28 1.31 0.65 0.8]);
set(gca, 'YTick', [0.65:0.075:0.8])
set(gca, 'XTick', [1.28:0.015:1.31]);
grid;