How to extract data meet specified condition from a matrix?

2 visualizzazioni (ultimi 30 giorni)
Hello everyone, I have a text file which looks like below
DLS: 16-24-48-26W4 747.88 746 Sandstone
DLS: 16-24-48-26W4 746 744.88 Sandstone
DLS: 16-24-48-26W4 744.88 744.19 Sandstone
DLS: 16-24-48-26W4 744.19 741.63 Siltstone
DLS: 16-24-48-26W4 741.63 741.33 Mudstone
DLS: 16-24-48-26W4 741.33 740.96 Sandstone
DLS: 16-24-48-26W4 740.96 740.77 Mudstone
DLS: 16-24-48-26W4 740.77 739.74 Coal
DLS: 16-24-48-26W4 739.74 739.64 Mudstone and siltstone
DLS: 16-24-48-26W4 739.64 738.92 Sandstone
DLS: 16-24-48-26W4 738.92 738.74 Siltstone
DLS: 16-24-48-26W4 738.74 738.64 Coal
DLS: 16-24-48-26W4 738.64 738.55 Mudstone
DLS: 16-24-48-26W4 738.55 738.37 Coal
DLS: 16-24-48-26W4 738.37 737.87 Siltstone
DLS: 16-24-48-26W4 737.87 737.45 Siltstone
DLS: 16-24-48-26W4 737.45 737.23 Mudstone
DLS: 16-24-48-26W4 737.23 737.13 Siltstone
DLS: 16-24-48-26W4 737.13 737.08 Mudstone
DLS: 16-24-48-26W4 737.08 736.62 Coal
DLS: 16-24-48-26W4 736.62 735.89 Sandstone
DLS: 16-24-48-26W4 735.89 735.09 Sandstone
DLS: 16-24-48-26W4 735.09 734.48 Sandstone
DLS: 16-24-48-26W4 734.48 733.62 Sandstone
I wanna extract depth information for different types of rocks such as sandstone, claystone,coal etc. The depths are the third and fourth columns.I think there should be some ways to write a loop to extract these data, but I dont know how to do it. Please let me know if anyboday know how to do it or advice. Thanks.
  4 Commenti
Krishna
Krishna il 26 Apr 2012
Hi,
Import the text file into Matlab. Try to convert it into cell array. once you have the data in cell format you can extract the row data by comapring teh strings using strcmp. If you have trouble importing the file into matlab probably it needs some preprocessing. Hope this helps.
Lei
Lei il 26 Apr 2012
Hi Krishna,
I have no problem to import this data.I can use textscan. If I use textscan, the results would be in a cell.The thing is that I dont know how to use string variables.I will take a look at the strcmp one. Thanks for your help!

Accedi per commentare.

Risposte (1)

Image Analyst
Image Analyst il 26 Apr 2012
You say "I am not importing these data into matlab." Have you considered Excel? It will be able to handle this, plus do sorting by rock type, various kinds of plotting, or whatever.
  4 Commenti
Lei
Lei il 26 Apr 2012
Hi
I used textscan to import my dataset into matlab
fid=fopen('ECC_LAS_10_Lithlogs.txt');
A=textscan(fid,'%s%s%s%s%s');
And now i am trying to use cellfun plus strcmp funtions to extract specific lithology depth information.
However,I found that after I use textscan,the cell A. For example,A{:,5} which is the lithology cell,does not have single quotation marks.
Because i am trying to use this code:
a = {'OL',4;'WR',7;'OL',3;'AT',2}
c=arrayfun(@(x) strcmp(x,'OL'),{a{:,1}});
I dont know why
Lei
Lei il 26 Apr 2012
B=arrayfun(@(x) strcmp(x,'sanstone'),{A{:,5}});
the returned result is zero. I guess the reason is that after I use textscan. My A{:,5} is not string cauz i looked at these data. they dont have quotaion marks

Accedi per commentare.

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by