write a matrix to a text file

1 vue (au cours des 30 derniers jours)
Arash
Arash le 22 Juin 2011
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. 1 NaN NaN NaN NaN
  2. 3 4 4 NaN NaN
  3. 6 1 NaN NaN NaN
  4. 2 2 NaN NaN NaN
  5. 4 4 5 NaN NaN
  6. 6 2 3 2 NaN
thanks!
  1 commentaire
Walter Roberson
Walter Roberson le 22 Juin 2011
Are the NaN certain to be at the end of the line? If not then a different method would have to be used.

Connectez-vous pour commenter.

Réponse acceptée

Laura Proctor
Laura Proctor le 22 Juin 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 commentaires
Arash
Arash le 22 Juin 2011
thanks! could you please explain a little bit about "[" on the line: fprintf(fid,[repmat('%d ',1,length(line)),'\n'],line);
what exactly brackets do?
Walter Roberson
Walter Roberson le 22 Juin 2011
The [] are horizontal concatenation in this contexts. Building up a string by parts.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Cell Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by