Read data from .dat file
조회 수: 6 (최근 30일)
이전 댓글 표시
Hey,
I am trying to read some data from a .dat file, by using the textscan function. The Problem is, that MATLAB outputs me a cell array where the cells contain the whole column of my data and I am not able to adress each element individually, which I will need for further evaluation. Sb knows what I am missing here?
Merry Christmans
Code and files:
datacell = textscan(fid, '%u %u %f64 %f64 %f64','HeaderLines', 1);
Data File:
% track# exppar1[Hz] lcut[dB HL] mlow[CU/dB] mhigh[CU/dB]
1 250.00000000 54.22407002 0.40618241 0.88538138
2 500.00000000 65.67426102 0.35505814 1.03196552
3 1000.00000000 68.89377754 0.33789152 1.14795756
4 2000.00000000 59.92227307 0.36044833 0.99198012
5 4000.00000000 63.79115269 0.39970735 3.14824276
6 6000.00000000 56.08308046 0.46312449 1.20653864
output of datacell{1}
ans =
1
2
3
4
5
6
댓글 수: 0
채택된 답변
Kirby Fears
2015년 12월 24일
You've given textscan directions to read 5 columns where the first two are %u (integers) and the next three are %f64 (doubles). Considering that you are specifying data types per column, Matlab has to give you each column separately. It's standard to put the columns together into a cell array.
You can access row 5 of column 1 by indexing twice as follows:
datacell{1}(5)
ans =
5
Does this solve your problem? What else are you trying to do with the data?
댓글 수: 4
Kirby Fears
2015년 12월 24일
편집: Kirby Fears
2015년 12월 24일
If you're willing to make each column the same datatype, you can read your data into a double array as follows:
dataArray = textscan(fid, '%n %n %n %n %n',...
'HeaderLines', 1,'CollectOutput',true);
dataArray = dataArray{1};
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Import and Export에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!