I have a text file with time "T2-distribution" and Amplitude at each depth.X-axis are my values adjacent to 'T2' row only. I want area under curve between T2 and amplitude at the respective 'DEPTH' (ignore values adjacent to 'DEPTH'- only in row 4)?

1 Ansicht (letzte 30 Tage)
Hole: 123A
Top: 78.67
T2 3.34 4.26 8.16 9.84 10.01
DEPTH 0 1 2 3 4
78.67 3.38 9.28 7.86 0.00 0.00
80.52 4.68 9.27 0.00 0.00 1.24
91.50 6.66 2.34 1.23 0.00 0.00
95.67 7.88 6.88 5.43 0.00 2.34
100.01 5.44 6.54 8.23 5.01 0.00
  2 Kommentare
KRISHNA NISHCAL BHARATULA
KRISHNA NISHCAL BHARATULA am 17 Mär. 2017
yes it is. But I need to find the area under each of those curves which gives 'porosity of rock' at a particular depth. I appreciate your quick response, thank you very much.
:)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KSSV
KSSV am 17 Mär. 2017
fid = fopen('your txt file') ;
S = textscan(fid,'%s','delimiter','\n') ;
fclose(fid) ;
S = S{1} ;
%%Get positions
idx1 = find(not(cellfun('isempty',strfind(S, 'T2')))); % T2 position
idx2 = find(not(cellfun('isempty',strfind(S, 'DEPTH')))); % T2 position
idx3 = idx2:length(S) ;
%%Get the required
x = cell2mat(cellfun(@str2num,strsplit(S{idx1}),'un',0)) ;
depth = cell2mat(cellfun(@str2num,strsplit(S{idx2}),'un',0)) ;
data = cell2mat(cellfun(@str2num,S(idx3),'un',0)) ;
y = data(:,1) ;
data = data(:,2:end) ;
%%each area
N = length(depth) ;
Area = zeros(N,1) ;
for i = 1:N
Area(i) = trapz(x,data(i,:)) ;
end

Weitere Antworten (0)

Kategorien

Mehr zu Data Import and Export finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by