writecell( [.... -inf inf ...] gives 65535 and 65535 in Excel both for -inf and +inf
Show older comments
table2cell(ToperLow)
ans =
1×5 cell array
{[650]} {[-Inf]} {[-Inf]} {[-Inf]} {[500]}
>> xx = table2cell(ToperLow)
xx =
1×5 cell array
{[650]} {[-Inf]} {[-Inf]} {[-Inf]} {[500]}
writecell( xx, 'test.xls', 'Sheet', 'sheet1', 'UseExcel', false )
Resulting cells in Excel is +65535 instead of - 65535???
650 65535 65535 65535 500
3 Comments
Another of the mysteries of Excel.
It doesn't know about IEEE Inf or NaN
There are some kludges you can do like writing a VBA routine something like
Function Inf(Optional Recalc) As Double
On Error Resume Next
Inf = 1/0
End Function
but you have to then use conditional formatting to display the "inf" indicator for the value that is, iirc, returned as (2^1024).
All in all, use 1E99 or some other "magic number" for the purpose or just forget about it...
Binbin Qi
on 18 Aug 2020
I think you can use string to instead of inf
dpb
on 18 Aug 2020
For some purposes, maybe...a string in the column instead of numeric may break import and return as cellstr() though...not convenient.
Answers (1)
Maadhav Akula
on 20 Aug 2020
0 votes
Hi,
I believe this is how Excel treats Inf and -Inf in a cell, as @Binbin Qi mentioned one workaround would be to write them as strings as mentioned in the following post:
Hope this Helps!
Categories
Find more on Spreadsheets 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!