?? tdu70.m
字號:
%二度異常向上延拓(利用剖面上的異常值)matlab7.4計算程序
%Design by 趙玉巖
%最后修改日期:2008年4月21日23:03:19
%Δg原始數據為excel文件,內容格式為:
%點號 Δg
%-2 0.00
%-1 0.00
%0 0.00
%1 0.00
%2 0.00
%Bi原始數據為,內excel文件容格式為:
%Bi
%0.00
%0.00
%0.00
%##########################################################################
clear;
clc;%清空窗體和內存內容
%以下讀入相關參數的對話框
%以下是讀入點個數的對話框
cydj=input('輸入采樣點距') %采樣點距
ytgd=input('輸入延拓高度') %延拓高度
if ytgd<cydj
msgbox '延拓高度小于采樣點距,程序無法工作'
break
end
if rem(ytgd,cydj)~=0
msgbox '延拓高度不是采樣點距的整數倍,程序無法工作'
break
end
[datafile,pathname]=uigetfile({'*.xls';'*.*'},'打開Δg原始數據文件:');%打開Δg原始數據文件
[ydata headtext]= xlsread([pathname datafile]);
subplot(2,1,1),plot(ydata(:,1),ydata(:,2))
hold on
ydx=size(ydata);%矩陣大小
yhs=ydx(1);%矩陣行數
ydh=ydata(:,1);
ydg=ydata(:,2);
[datafile,pathname]=uigetfile({'*.xls';'*.*'},'打開系數原始數據文件:');%打開系數原始數據文件
[bdata headtext]= xlsread([pathname datafile]);
bdx=size(bdata);%矩陣大小
bhs=bdx(1)-1;%矩陣行數
if 2*bhs>yhs
msgbox '系數值個數大于測點的1/2,程序無法工作'
break
end
%對系數進行處理
bn=[];
for i=0:bhs-1
bn=[bn bdata(bhs-i)];
end
bn=[bn bdata'];
%ydg進行擴邊處理
nydg=td(ydg',ytgd/cydj*bhs);
ydg=nydg';
yhs=yhs+ytgd/cydj*bhs*2;
%以下開始計算,不包括邊緣數據
ytdgjz=[];
for i=(ytgd/cydj*bhs+1):(yhs-ytgd/cydj*bhs)
ndg=[];
for j=(i-ytgd/cydj*bhs):(ytgd/cydj):(i+ytgd/cydj*bhs)
ndg=[ndg ydg(j)];
end
ytdg=ndg*(bn');
ytdgjz=[ytdgjz ytdg];
end
[filename2, pathname2] = uiputfile( ...
{'*.xls', '電子表格(*.xls)'}, ...
'二度異常向上延拓計算結果:');
a1={'點號' '向上延拓值'};
xlswrite([pathname2 filename2],a1,'sheet1','A1');
xlswrite([pathname2 filename2], ydh ,'sheet1','A2');
xlswrite([pathname2 filename2], ytdgjz' ,'sheet1','B2');
subplot(2,1,2),plot(ytdgjz)
msgbox '計算完成!'
hold off
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -