Make num2str in engineering format
64 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Yoav Romach
am 6 Mär. 2014
Beantwortet: Steven Lord
am 22 Nov. 2021
Hey, I'm writing this code:
disp(['Cutoff frequency: ',num2str(wcutoff,'%e')]);
and this displays the frequency in an normal exponential format, but I want it to be in eng format. This means that instead of:
5.2e10
I want it to show:
52.0e9
Is that possible? A possible workaround could be to use "format shortEng" and than separate the display code into 2 lines, but than I need to find a way that it'll display it in one output line or something like that...
0 Kommentare
Akzeptierte Antwort
Weitere Antworten (3)
Steven Lord
am 22 Nov. 2021
If you're using release R2021a or later I would use formattedDisplayText instead of evalc.
wcutoff = 5.2e10;
t = formattedDisplayText(wcutoff, 'NumericFormat', 'shortEng')
0 Kommentare
Harry Dymond
am 16 Jul. 2019
For the benifit of those stumbling across this old thread in search of answers: my FEX submission num2eng will do what the OP is asking for.
0 Kommentare
Jos (10584)
am 7 Mär. 2014
A similar effect can be obtained by manipulating the string rather than the numbers
X = 52346574 ;
s1 = sprintf('%.2e',X)
v = sscanf(s1,'%d.%de%d')
s2 = sprintf('%d%.1fe%02d',v(1), v(2)/10, v(3)-1)
disp(['Cutoff frequency: ', s2]);
Which can be made into a function handle:
Val2EngString = @(X) sprintf('%d%.1fe%02d',[1 .1 1] .* sscanf(sprintf('%.2e',X),'%d.%de%d').' - [0 0 1])
disp(Val2EngString(2340000000))
1 Kommentar
Siehe auch
Kategorien
Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!