My goal is to write a file that has a column of double precision numbers for each subject. Here's what I have:
TadvDiff(1,qq) = currsubj; %Heading that displays subject ID number
TadvDiff(2:(timepoints+1),qq) = TminusC;currsubj and TminusC are both double-precision. Somehow, TadvDiff is int32.
After looping through each subject, I write TadvDiff to a file:
dlmwrite('TadvDiffN108.txt',TadvDiff,'delimiter','\t','precision', '%.4f');which ends up being all 1s and 0s when I need decimals. Why did my doubles become ints, and how can I correct this?
Thanks!
No products are associated with this question.
5 Comments
Direct link to this comment:
http://www.mathworks.es/matlabcentral/answers/41390#comment_84771
I should maybe add that 1) I've read about precision problems with dlmwrite, but the value of TadvDiff is already an int32 before I call that function; and 2) I'm using the student version of Matlab, 7.10 if that is useful info.
Thanks again!
Direct link to this comment:
http://www.mathworks.es/matlabcentral/answers/41390#comment_84772
How did you initialize TadvDiff ?
Direct link to this comment:
http://www.mathworks.es/matlabcentral/answers/41390#comment_84876
The code that I've shown is the first time I've defined TadvDiff.
Direct link to this comment:
http://www.mathworks.es/matlabcentral/answers/41390#comment_84890
Somehow, the very first time you write into TadvDiff, you must be storing int32. That very first write determines the datatype after that.
Can you reasonably pre-allocate your TadvDiff array? e.g.,
TadvDiff = zeros(timepoints+1, 17);
Direct link to this comment:
http://www.mathworks.es/matlabcentral/answers/41390#comment_84921
Great, that did the trick! Thanks so much!