Delimiting a text file like "Text to columns" and viewing the output

1 view (last 30 days)
Hello, I am trying to import data from a Text file (.txt). This data has a single column of mixed (numeric and string) data that is | (bar) delimited. My goal is to import this data and seperate each delimited portion into a seperate columns while maintaining the rows. Essentially, I am trying to do the Excel "Text to columns" with MATLAB. Thank you
Below is a step-by-step output:
%open file
fid = fopen(YourFile,'rt')
fid =
5
%figure out how many columns are there
firstline = fgetl(fid)
firstline =
RMS Functional Block|Reference Designator|Part Number|Sheet Number|Description|Invisible
ncol = 1 + sum(firstline == '|')
ncol =
6
%reset to beginning of file
fseek(fid,0,0)
ans =
0
%read data
indata = textscan(fid,repmat('%s',1,ncol),'Delimiter','|','CollectOutput',1)
indata = {646x6 cell}
%close file
fclose(fid)
ans =
0
How do I look at indata's data?
  3 Comments
Fangjun Jiang
Fangjun Jiang on 15 Sep 2011
If it's 1x1 cell array, do this to
NewInData=indata{1} to get its element which is 646x6 cell array, which is what you really want. Then use the method in my answer below.
Also, try not to use the ('CollectOuuput',1) option. I think it will give you directly the 646x1 cell array.
Walter Roberson
Walter Roberson on 15 Sep 2011
CollectOutput is correct here, Fangjun. Without it you would get a 646x6 cell array in which each entry was a cell array containing a string; e.g., {{'a'},{'b'}} rather than the present {'a','b'}

Sign in to comment.

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 15 Sep 2011
The data is a cell array. You can:
1. type indata{1,1} to see the first element
2. use celldisp(indata) to see all
3. use open('indata') to see all
  6 Comments
Brian
Brian on 15 Sep 2011
Yes, how can I place a number produced by an equation into a cell array?

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 15 Sep 2011
indata{L,C} will be the string that was on line #L at column #C
For example, indata{3,7} is column 7 of line 3.

Products

Community Treasure Hunt

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

Start Hunting!