I am writing a function which reads a text file with some header information in the first 10 lines and then the actual data starts. Here is how the file looks:
Line 1 to
.....
Line 10 (header information)
0 0 4.169080e+000
1 0 6.391669e+000
2 0 6.391669e+000
.
.
.
511 0 9.922547e+000
0 1 5.268026e+000
1 1 5.268026e+000
.
.
.
511 511 9.922547e+000
I have extracted information from the lines which are part of the header. Line 11 onwards the line format is:
x y value
I want to read all these lines one by one (line 11 onwards) and form a 2D matrix(dimensions: 511 X 511) of the value column so that later I can generate an image using this (basically using squeeze() and imshow() functions). Can someone help me how I organize this in a matrix? I am trying to use a yLoop and a nested xLoop but it is not working.

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2014년 2월 13일
편집: Andrei Bobrov 2014년 2월 13일
f = fopen('yourtextfile.txt');
c = textscan(f,'%d %d %f','HeaderLines',10,'CollectOutput',1);
fclose(f);
out = accumarray(c{1}+1,c{2});

댓글 수: 3

I tried to customize this according to my file. Here is the code: lineCount=10;
for lineCount=10:(xDimensions*yDimensions)
c = textscan(line,'%d %d %f','HeaderLines',3,'CollectOutput',1);
end
size(c)
out = accumarray(c{:})
The size of c comes of to be 1 2 and out returns []. Is there something wrong which I am doing?
Sorry, my typo, corrected.
It works now ! :)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

제품

질문:

2014년 2월 13일

댓글:

2014년 2월 13일

Community Treasure Hunt

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

Start Hunting!

Translated by