How to ignore letters in a numeric cell?
20 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Daniel Tanner
am 28 Jan. 2020
Kommentiert: Daniel Tanner
am 29 Jan. 2020
I have imported a vector into MatLab from excel which was originally imported from ANSYS. I would like to plot this vector against another one, however each entry has a 'mm' after it, like so:
PinRadius = [0.01mm;0.02mm;0.03mm;0.04mm;...]
Is there a way in MatLab to ignore the letters and just read the numbers so I can produce a plot? I know I could manually do this but I have over 200+ entries.
Any help is greatly appreciated, thanks!
2 Kommentare
Adam
am 28 Jan. 2020
Are they in cell arrays or a char array (implying that every one is the same length and never more nor fewer digits)?
The example format you have given is not valid as it is a numeric array with characters in it too.
Akzeptierte Antwort
Adam
am 28 Jan. 2020
Bearbeitet: Adam
am 28 Jan. 2020
cellfun( @(x) str2double( erase( x, 'mm' ) ), pin_radius )
should convert them to an array of doubles.
If you are using pre R2016b you would have to use something like this instead:
cellfun( @(x) str2double( strrep( x, 'mm', '' ) ), pin_radius )
(Note in that version the 3rd argument to strrep is two consecutive single quotes, not a double quote)
Weitere Antworten (1)
Stephen23
am 28 Jan. 2020
Simpler and much more efficient with sscanf:
>> C = {'0.01mm';'0.02mm';'0.03mm';'0.04mm'};
>> V = sscanf([C{:}],'%fmm')
V =
0.010000
0.020000
0.030000
0.040000
Siehe auch
Kategorien
Mehr zu Data Distribution Plots 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!