How to extract all the rows which match an specific string column
81 views (last 30 days)
Show older comments
The data is organized on this way: 4 numeric columns and 3 string columns all of same dimentions. I need to build a matrix which contains all the columns in order to extract the rows who match with and specific geol_unit string.
%this is how i read the data:
[x,y,strike_dir,dip,town,geol_unit,source] = textread('DatosEstructurales_C&S.txt','%f %f %f %f %s %s %s','delimiter',';');
%next step would be to build a matrix to obtain something like:
x y strike_dir dip 'town' 'geol_unit' 'source'
1191292.27 824768.3 65 60 Medellin StockAltavista Microzonificacion_2007
1191237.46 825146.46 200 25 Medellin StockAltavista Microzonificacion_2007
1188070.99 825708.745 46 55 Medellin Dunita RecargaCyS_2013
1188070.99 825708.745 156 60 Medellin Dunita RecargaCyS_2013
The final idea is to find an specific geol unit match and extact all the values.. for example all Dunita values, and get a matrix like:
x y strike_dir dip 'town' 'geol_unit' 'source'
1188070.99 825708.745 46 55 Medellin Dunita RecargaCyS_2013
1188070.99 825708.745 156 60 Medellin Dunita RecargaCyS_2013
0 Comments
Answers (2)
KL
on 6 Nov 2017
Edited: KL
on 6 Nov 2017
Use readtable to import your data,
T = readtable('DatosEstructurales_C&S.txt');
if you don't have column names included in your text file, then
T.Properties.VariableNames = {'x','y','strike_dir','dip','town','geol_unit','source'};
and now to get what you want,
T_dunita = T(T.geol_unit == 'Dunita',:)
read more about readtable and tables on the below links:
2 Comments
KAE
on 5 May 2020
When trying to match a string in a table column,
T.geol_unit == 'Dunita'
I get the error
Undefined operator '==' for input arguments of type 'cell'.
See Also
Categories
Find more on String in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!