Matlab画多测道图

该Matlab程序用于画多条测线的多测道图

同时代码实现了批量处理文件,数据格式转换,指定路径批量存储图片,下面即为所要呈现的代码:

// A code block
%%  主程序部分
clc;
clear all;
close all;

shuju1=zeros(41*69,15);
shuju2=zeros(39*69,2);
nt=69;
t=load("t.dat");
x1=load("x1.dat");
x2=load("x2.dat");
for ii=1:15
    figure
    filename=strcat("A1B1_",num2str(ii*20+80),"_dbdt_WaveTransfer.dat");  %用于生成一系列文件
    if ii= =4 || ii==5
       shuju2(:,ii-3)=load(filename)';
       data2=zeros(39*69,3);
        for ix=1:39
            for it=1:69
                data2((ix-1)*nt+it,1)=x2(ix);
                data2((ix-1)*nt+it,2)=t(it);
            end
            data2(:,3)=shuju2(:,ii-3);
        end
        C=linspecer(nt); %子程序linspecer的作用是对nt个时间道分配nt个颜色
        sj=unique(data2(:,2));  %时间道t,unique(A)相当于只要数组A中非重复的元素,并从小到大进行排列
        for i = 1:1:nt % length(sj)
            sy = find( data2(:,2)==sj(i) );
            semilogy(data2(sy,1),smooth(data2(sy,3),5),'color',C(i,:),'linewidth',2); %对数据进行光滑处理
%             semilogy(data2(sy,1),data2(sy,3),'color',C(i,:),'linewidth',2); %对数据进行三次样条插值
            hold on;
        end
        xlim([0 380])
    else
       shuju1(:,ii)=load(filename)';
       data1=zeros(41*69,3);
        for ix=1:41
            for it=1:69
                data1((ix-1)*nt+it,1)=x1(ix);
                data1((ix-1)*nt+it,2)=t(it);
            end
            data1(:,3)=shuju1(:,ii);
        end
        C=linspecer(nt); %子程序linspecer的作用是对nt个时间道分配nt个颜色
        sj=unique(data1(:,2));  %时间道t,unique(A)相当于只要数组A中非重复的元素,并从小到大进行排列
        for i = 1:1:nt % length(sj)
            sy = find( data1(:,2)==sj(i) );
            semilogy(data1(sy,1),smooth(data1(sy,3),5),'color',C(i,:),'linewidth',2);
%             semilogy(data1(sy,1),data1(sy,3),'color',C(i,:),'linewidth',2);
            hold on;
        end
        xlim([0 400])  
    end
    ylim([1.5e-10 1.5*1e-7])
    set(gcf,'unit','centimeters','position',[3 5 30 10])
    set(gca, 'LineWidth',1.5,'Fontname', 'TimesNewroman','FontWeight','bold&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值