MATLAB Answers

0

The number of lines on ASCII file should be same - error

Asked by Rimmi Dhammi on 22 Oct 2019 at 18:21
Latest activity Edited by Rimmi Dhammi on 25 Oct 2019 at 17:01
Hi Team
I wrote this simple code to understand loading and saving
tan =randi([-1,3],2,3)
save 'testtan.dat' tan
clear
load 'testtan.dat' 'tan'
Error using load
Number of columns on line 2 of ASCII file testtan.dat must be the same as previous lines.
So. I need help understanding what it means. My matrix seems to be fair but what does it mean ' columns of ASCII file'.
Please help.
I have used importdata and other methods, they are fine but I want to understand load function in depth as i will be using it a lot.
Thank you
R

  0 Comments

Sign in to comment.

1 Answer

Answer by Cris LaPierre
on 23 Oct 2019 at 1:44
 Accepted Answer

What are you trying to do?
You can read more about save in the doc. There are also examples there to help you get started.
If you are trying to create mat files (MATLAB's way of saving variables), try the following
tan =randi([-1,3],2,3)
save('testtan','tan')
clear
load 'testtan'
If you instead are trying to save the data to a file in ascii format, try this
tan =randi([-1,3],2,3)
writematrix(tan,'testtan.dat')
clear
tan = readmatrix('testtan.dat')

  2 Comments

If you are partial to doing it the way you've shown, then you'll need to specify the format of testtan.dat. When using save, MATLAB will try to format the file contents based on the extension. Not sure what it is doing with *.dat, but forcing '-ascii' fixes the issue you are seeing.
tan =randi([-1,3],2,3)
save('testtan.dat','tan','-ascii')
clear
tan = load('testtan.dat')
The second argument in the load command (variables) is only supported for *.mat files. If you are going to use a different file extension, that argument cannot be used.
thank you. all those suggestions were great. especially about .mat file argument. :)

Sign in to comment.