Display number with engineering notation
169 次查看(过去 30 天)
显示 更早的评论
I'm trying to display a number I read in with textscan in engineering notation. I was trying to switch the format to short eng and do:
evalc('disp(x)')
But it doesn't matter what format I set, the format textscan reads it in is what it uses.
1 个评论
Harry Dymond
2020-5-31
编辑:Harry Dymond
2020-5-31
For the benifit of those stumbling across this old thread in search of answers: please see my answer below
采纳的回答
Walter Roberson
2011-11-8
My tests disagree with Jared's findings:
>> result = textscan('133423.3e7','%f')
result =
[1334233000000]
>> format short eng
>> evalc('disp(result{1})')
ans =
1.3342e+012
>> result{1}
ans =
1.3342e+012
Engineering format was indeed used for the output, and the output is not the same as the format of the value that was read in nor of the format the data was stored in
2 个评论
Walter Roberson
2011-11-9
Trying to set as input or as output? Are you using
textscan( get(handles.example,'String'), 'Some Format Here')
or are you using
set(handles.example, 'String', x) %where x is the numeric value
or are you using something like:
set(handles.example, 'String', evalc('format short eng; disp(x)'))
If you are trying to set the String parameter to a numeric value, then the conversion that MATLAB uses is not documented (as best I recall.)
更多回答(2 个)
Harry Dymond
2020-5-31
For the benifit of those stumbling across this old thread in search of answers: my FEX submission num2eng will do this, and offers SI prefixes as well as engineering notation.
0 个评论
owr
2011-11-8
Try sprintf with a format string. It converts the number to a text string with a format of your choosing. Some built in MATLAB functions use this trick, for example, edit the code for dlmread.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Characters and Strings 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!