importdata skips the last few rows?
5 次查看(过去 30 天)
显示 更早的评论
Hello all. I was using importdata in my code to bring in some matrices. I hadn't tested the code in quite some time, but I just upgraded from r2011a to r2012a and then ran it. Apparently importdata is now misbehaving. Whenever I try to do
>> data = importdata('file.txt')
where file.txt is a 360x720 ASCII file (generated from Matlab a while back using
>> save('file.txt','variable','-ASCII')
I get a variable that is 348x720:
>> size(data)
ans =
348 720
This happens with other 360x720 ASCII files as well, although for some of them I only get 347 rows. What do you think is going on? Thanks in advance!
采纳的回答
Geoff
2012-5-9
That's odd... Confirmed in my own 2012a.
It appears to be trimming all the entirely NaN rows from the end of your data.
I replaced line 348 with line 349, and confirmed the result is 347 rows long. Then I set the first element in line 360 to a non-nan value, and the result was 360 rows long.
I think this is stupid behaviour to have in a function, but nevermind.
Given that the files were created with save, you should do this instead:
data = load('file.txt', '-ASCII');
4 个评论
Geoff
2012-5-9
@Jan : Oh, I had a look and found this:
if ~isempty(numericData)
numericData = TrimTrailing(@(x)(isnan(x)), numericData);
end
更多回答(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!