Problem in defining a column

조회 수: 1 (최근 30일)
Pap
Pap 2011년 4월 5일
Hello,
%I want to define the column 4 of a set of txt imported data. Thus: % I import the data like:
fid = fopen('ex.txt');
data = textscan(fid,'%s%s%f%f%f%[^\n]','headerlines',1);
% (mo delimiter specification, since the file consists of mixture of delimiters)
%Read it as text:
frewind(fid);
txt = textscan(fid,'%s','\n');
fclose(fid);
%Define Column 4 (Price):
Price = data{4};
% In the latest however I receive a value '[]', instead of producing a '10000000x1 double' since 10000000 are the rows of the file?
Can anyone help on what '[]' pertains to and how can overcome this?
Many thanks in advance,
Panos

답변 (2개)

Walter Roberson
Walter Roberson 2011년 4월 5일
You should be using
fid = fopen('ex.txt', 'rt');
but it is unlikely that that would cause the problem you see.
Please examine your file outside of Matlab and verify that it has spaces between the strings (e.g., not tabs)
  댓글 수: 3
bym
bym 2011년 4월 5일
[] is an empty matrix
Walter Roberson
Walter Roberson 2011년 4월 6일
After the textscan(), display size(data) and
cellfun(@size,data,'Uniform',0)
It is possible for data{4} to be empty if, for example, data{1} had captured the entire line.

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


Matt Tearle
Matt Tearle 2011년 4월 6일
OK, this is the follow-on to this earlier question, right? So an output of [] from textscan generally indicates a mismatch between the format specifier and what's actually in the file. If your data is too big for the memory you have available, you should have seen an "out of memory" error. If not, it's more likely that something doesn't match. Are you sure the file has exactly the same formatting as the example? What about missing values? Extra header lines?
Try reading a fixed number of lines:
data = textscan(fid,'%s%s%f%f%f%[^\n]',10,'headerlines',1);
will read 10 lines. See if you get anything.
Also, do you get anything in txt? You might be able to look at its contents to see what's going on.
  댓글 수: 6
Pap
Pap 2011년 4월 6일
Hi again Matt,
I just saved the above and greek characters appear as '?'.
The 'tab' delimiters do not appear as well.
Is there any way to attach (send) a sample of the original file?
Many thanks again
Panos
Pap
Pap 2011년 4월 6일
I also get the below error message:
outstr = strcat(txt{1},[' Trade';buysell]);
??? Error using ==> cell.strcat at 50
All the inputs must be the same size or scalars.

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

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by