⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readdata.m

📁 这是用于工程测量进行大坝变形分析的软件
💻 M
字号:
% 各变量意义==========================================
% fit1            读取的文件号
% No             观测点数
% j              观测次数编号
% angel            请输入滑坡位移要投影的方向(与x夹角,向y的正方向为正.以dd.mmss的格式)
% month_time                  以第一次观测月为1开始的月数(差多少月,值是多少,非观测次数)
% year            记录每次观测的年
% month            记录每次观测的月
% day             记录每次观测的日
% month_interval       每次观测的间隔月数
% x(j,i)                      第j次观测的i点的x              
% y(j,i)                       第j次观测的i点的y
% u(j,i)           第j次观测的i点的x与第1次观测的i点的x之差
% v(j,i0                       第j次观测的i点的y与第1次观测的i点的y之差
% total_distchange_angel       每个点的总位移的方位角
% distchange                   每个点在所求方向上的总位移
% time                         总观测次数
% begin_year_month      要拟合的开始年月
% end_year_month       要拟合的终止年月
% begin_num_want_to_nihe   要拟合的开始年月化成观测编号
% end_num_want_to_nihe    要拟合的终止年月化成观测编号
% switch_bool                 开关变量,用来判断要拟合的方法
% nihe_number         要拟合的点号
% x0             拟合和画成图的x坐标
% y0             拟合和画成图的y坐标
% xmax                        拟合和画成图的x坐标的最大值
% xmin            拟合和画成图的x坐标的最小值
% ymax            拟合和画成图的y坐标的最大值
% ymin                        拟合和画成图的y坐标的最小值
% z_u(j)                      每期整体X方向位移
% z_v(j)                      每期整体Y方向位移
% z_distchange                每期整体总位移
%===============================================
% 各函数的意义========================================
% alfa           求方位角
% dms_rad         度分秒转为弧度
% get_nihe_num      把起始年月转为观测次数编号
% line_nihe        直线拟合
% linefunction      完成由直线拟合后的画图等工作
% poly_nihe        样条拟合
% polyfunction      完成由样条拟合后的画图等工作
%========================================
global fit2
[filename1,pathname1]=uigetfile('*.txt','读入数据');
fit1=fopen(strcat(pathname1,filename1),'rt');
if(fit1==-1)
    msgbox('Input File or Path is not correct','Warning','warn');
    break;
end
[filename2,pathname2]=uiputfile('*.out','写入数据');
fit2=fopen(strcat(pathname2,filename2),'wt');
if(fit2==-1)
    msgbox('Error by Opening Output File','Warning','warn');
    break;
end
%=========================================读数据========================
No=fscanf(fit1,'%d',1);  %读取点的个数
j=0;  %是日期的编号
change_angel=alfa(945.3214-909.6738,6378.8307-6420.9822)+3.14/2;%滑坡方向
month_time(1)=1;
while (1) 
    temp=fscanf(fit1,'%d',1);
    if isempty(temp)
        break;
    end
    j=j+1;
    myyear(j)=temp; 
    mymonth(j)=fscanf(fit1,'%d',1);      
    myday(j)=fscanf(fit1,'%d',1);
    if j~=1
        month_interval(j)=mymonth(j)+(myyear(j)-myyear(j-1))*12-mymonth(j-1);
        month_time(j)=month_time(j-1)+month_interval(j);
    end  
    for i=1:No                                     
        x(j,i)=fscanf(fit1,'%f',1);
        y(j,i)=fscanf(fit1,'%f',1);
        if j~=1 
            u(j,i)=x(j,i)-x(1,i);%每个点的j时期的x与原始时期的差
            v(j,i)=y(j,i)-y(1,i);%每个点的j时期的y与原始时期的差
           distchange(j,i)=sqrt(u(j,i)^2+v(j,i)^2);%每个点的j时期的总位移
        end
    end  
end %数据读取完成
time=j; %把观测的次数送给time
z_u=sum(u,2)/No;%每期整体X方向位移
z_v=sum(v,2)/No;%每期整体Y方向位移
set(button1,'enable','on');
set(button2,'enable','on');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -