write a matrix to a text file
1 view (last 30 days)
Show older comments
I'd like to write a matrix into a text file, but I don't want elements with NaN value appear in the file, instead I want an empty space for each NaN value, here is a part of the matrix:
- 1 NaN NaN NaN NaN
- 3 4 4 NaN NaN
- 6 1 NaN NaN NaN
- 2 2 NaN NaN NaN
- 4 4 5 NaN NaN
- 6 2 3 2 NaN
thanks!
1 Comment
Walter Roberson
on 22 Jun 2011
Are the NaN certain to be at the end of the line? If not then a different method would have to be used.
Accepted Answer
Laura Proctor
on 22 Jun 2011
I wrote the following code which writes it line by line. Do you need the line breaks to be as they are in the original matrix? If not, then a FOR loop wouldn't be necessary.
A = [ 1 NaN NaN NaN NaN
3 4 4 NaN NaN
6 1 NaN NaN NaN
2 2 NaN NaN NaN
4 4 5 NaN NaN
6 2 3 2 NaN ]
fid = fopen('stuff.txt','w+');
for idx = 1:size(A,1)
line = A(idx,~isnan(A(idx,:))); % creates the line of data without NaNs
fprintf(fid,[repmat('%d ',1,length(line)),'\n'],line);
end
fclose(fid);
2 Comments
Walter Roberson
on 22 Jun 2011
The [] are horizontal concatenation in this contexts. Building up a string by parts.
More Answers (0)
See Also
Categories
Find more on Cell Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!