MATLAB (quick) Matlab fprintf question

  • Thread starter Thread starter astropi
  • Start date Start date
  • Tags Tags
    Matlab
AI Thread Summary
To save output stored in a variable "x" to a text file in MATLAB, the correct approach involves using the fopen function with the appropriate permission. The command `fileID = fopen('x.txt', 'w');` opens the file for writing, allowing you to create it if it doesn't exist. The fprintf function should then include the file identifier as the first parameter: `fprintf(fileID, '%d\n', x);`. This ensures that the data is written to the specified file. If an "Invalid file identifier" error occurs, it typically indicates an issue with the fopen command, often due to missing write permissions or the file not being opened correctly. The final resolution confirmed that using the 'w' permission resolved the issue, allowing the output to be saved successfully.
astropi
Messages
47
Reaction score
0
I have output (stored in variable "x") that I want saved into a simple text file. If I use the command:

fprintf('%d\n',x);

it prints the data in a nice column. This is what I want. Then to save it to a file I try this:

fileID = fopen('x.txt');
fprintf('%d\n',x);
fclose(fileID);

however Matlab does not like this. When I searched the help file, it gave a similar example, so what am I doing wrong here? Thanks in advance!
 
Physics news on Phys.org
Try specifying the file ID as the first parameter.

fileID = fopen('x.txt');
fprintf(fileID,'%d\n',x);
 
uart said:
Try specifying the file ID as the first parameter.

fileID = fopen('x.txt');
fprintf(fileID,'%d\n',x);

Thanks for the help, but unfortunately it did not work. I still get this error from Matlab:

Error using fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.


when I try my code:


fileID = fopen('x.txt');
fprintf('%d\n',x);
fclose(fileID);

the error I get is:

Error using fclose
Invalid file identifier. Use fopen to generate a valid file identifier.


I still can't figure out why?
 
When you open the file, you need to specify the permission, which is related to what you want to do with the file (read it, write to it, and so on).

Here's a link to some documentation for fopen: http://amath.colorado.edu/computing/Matlab/OldTechDocs/ref/fopen.html .Try this:
Code:
fileID = fopen('x.txt', 'wt');
fprintf('%d\n',x);
fclose(fileID);

I don't have MATLAB, so can't verify that this will work, but I think it will.
 
Last edited by a moderator:
astropi said:
Thanks for the help, but unfortunately it did not work. I still get this error from Matlab:

Error using fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.


when I try my code:


fileID = fopen('x.txt');
fprintf('%d\n',x);
fclose(fileID);

the error I get is:

Error using fclose
Invalid file identifier. Use fopen to generate a valid file identifier.


I still can't figure out why?
Ok, well in that case it appears that your problem is with the fopen statement (BTW. Is there any particular reason why you didn't post the actual error message in the first place!)

Try letting it know that the file doesn't currently exit and that you wish to create it.

fileID = fopen('x.txt','w');

This tells it that you want to open the file for writing.
 
uart said:
Ok, well in that case it appears that your problem is with the fopen statement (BTW. Is there any particular reason why you didn't post the actual error message in the first place!)

Try letting it know that the file doesn't currently exit and that you wish to create it.

fileID = fopen('x.txt','w');

This tells it that you want to open the file for writing.

Thanks! I really can't think of why I did not post the error in the first place, except that I've not had much sleep :)

Edit: OK, got it! Thanks everyone for the help!
 

Similar threads

Replies
4
Views
1K
Replies
2
Views
4K
Replies
7
Views
7K
Replies
2
Views
2K
Replies
1
Views
3K
Back
Top