How can i import numerical data from non-tabular text file in MAtLAB?

3 views (last 30 days)
solid rodfin
facet normal 9.997519e-001 2.227527e-002 0.000000e+000
outer loop
vertex 6.477990e+001 3.459198e+001 1.220000e+002
vertex 6.485231e+001 3.242616e+001 1.220000e+002
vertex 6.485231e+001 3.242616e+001 2.775558e-014
endloop
endfacet
I have text file as shown above..I only want to import numerical data from it.
  2 Comments
Walter Roberson
Walter Roberson on 20 May 2013
Do you have the same number of "vertex" entries for each "facet" entry? So could each "facet" be converted to a 4 x 3 numeric array?
siddhesh rane
siddhesh rane on 20 May 2013
yes i have same number of vertex for each facet..yes it can be converted. how can i do that?

Sign in to comment.

Accepted Answer

David Sanchez
David Sanchez on 20 May 2013
If test.txt is your txt file, the following code will create a cell C whose cell contains your data ( all of it ). You can iterate along the cell and retrieve the data you need/want.
fid=fopen('test.txt');
C=textscan(fid,'%s');

More Answers (1)

David Sanchez
David Sanchez on 20 May 2013
fid=fopen('test.txt');
C=textscan(fid,'%s%s%s%s%s%s%s%s','delimiter','\n'); % read each line in string format
fclose(fid)
data1 = char(C{1,2});
data1 = textscan(data1,'%s%s%f%f%f');
data1 = data1(3:5);
for n = 1:3
num_data1(n) = data1{n};
end
num_data = zeros(3,3);
for k =4:6
data= char(C{1,k});
data = textscan(data,'%s%f%f%f%f');
data = data(2:4);
for n = 1:3
num_data(k-3,n) = data{n};
end
end

Community Treasure Hunt

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

Start Hunting!