csvwrite does not store data completely!
8 次查看(过去 30 天)
显示 更早的评论
Hello,
I am generating data in MATLAB by storing them in separate .csv files using csvwrite(), each having the same number of rows and columns. The weird thing is that it nicely stores some of the data, however, for some others it stores data incompletely, meaning that the number of rows/columns does not match with what it should be! seems that the excel file is corrupted!
Note that, I store 3000 excel files and say 2995 of them are nicely stored, but just some of them are corrupted and I do not know what is the issue!
Does anyone experience something like this?
for i=1:1:3000
...
filename1 =sprintf('DATA1_%d.csv', i);
csvwrite(filename1, x)
filename2 = sprintf('DATA2_%d.csv', i);
csvwrite(filename2, y)
end
7 个评论
Walter Roberson
2022-6-2
By which I mean that there are reports of problems writing to network drives, especially OneDrive. When space permits it is faster and safer to write to a local drive and then copy the results to the network drive.
回答(1 个)
Image Analyst
2022-6-1
Is it always the same array that is being written out short? What happens if you recall it right away to test.
for i=1:1:3000
...
filename1 =sprintf('DATA1_%d.csv', i);
fprintf('Writing %s with %d rows and %d columns.\n', filename1, size(x, 1), size(x, 2));
csvwrite(filename1, x)
data = csvread(filename1);
fprintf(' Recalled %s with %d rows and %d columns.\n', filename1, size(data, 1), size(data, 2));
if ~isequal(size(data), size(x))
message = sprintf('ERROR: File %s was written out with %d rows and %d columns but was recalled with only %d rows and %d columns!',...
filename1, size(x, 1), size(x, 2), size(data, 1), size(data, 2))
uiwait(errordlg(message));
end
filename2 = sprintf('DATA2_%d.csv', i);
fprintf('Writing %s with %d rows and %d columns.\n', filename2, size(y, 1), size(y, 2));
csvwrite(filename2, y)
data = csvread(filename2);
fprintf(' Recalled %s with %d rows and %d columns.\n', filename2, size(data, 1), size(data, 2));
if ~isequal(size(data), size(x))
message = sprintf('ERROR: File %s was written out with %d rows and %d columns but was recalled with only %d rows and %d columns!',...
filename2, size(y, 1), size(y, 2), size(data, 1), size(data, 2))
uiwait(errordlg(message));
end
end
5 个评论
Image Analyst
2022-6-2
You're welcome. But what did you observe? Was the recalled data different than the saved data for any of the files? If not, what are you basing the fact that some files are only partially saved on?
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spreadsheets 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!