Extract numeric data from cell

26 Ansichten (letzte 30 Tage)
Baklouti Sana
Baklouti Sana am 9 Feb. 2021
Kommentiert: Jan am 9 Feb. 2021
I need to extract numbers from a cell and put them in a matrix.
My cell is expressed as following:
A={'position: [0.5418702363967896, 0.0005752428551204503, -3.834952076431364e-05, 0.0, 0.0, 0.0]'};
I tried the following example but it does not consider the e-5 .
A1 = regexp(A,'[\d*\.]*\d*','match')
A2 = [A1{:}]
out = str2double(strcat(A2{:}))
I need to get the full number to be able to make some calculations.
Thank you for help.
  3 Kommentare
Baklouti Sana
Baklouti Sana am 9 Feb. 2021
It is a cell :)
Jan
Jan am 9 Feb. 2021
Then use:
B = A{1}
Now it is a CHAR vector again.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Mathieu NOE
Mathieu NOE am 9 Feb. 2021
hello
A = {'position: [0.5418702363967896, 0.0005752428551204503, -3.834952076431364e-05, 0.0, 0.0, 0.0]'};
A1 = regexp(char(A),'[-+]?([0-9]*[.])?[0-9]+([eE][-+]?\d+)?','match'); % extract numerical content of string
out = str2double(A1);
  2 Kommentare
Baklouti Sana
Baklouti Sana am 9 Feb. 2021
Thank you @Mathieu NOE
This solved my problem!
Stephen23
Stephen23 am 9 Feb. 2021
Bearbeitet: Stephen23 am 9 Feb. 2021
More efficient than this answer:
format short G
A = {'position: [0.5418702363967896, 0.0005752428551204503, -3.834952076431364e-05, 0.0, 0.0, 0.0]'};
X = find(A{1}=='[',1);
V = sscanf(A{1}(1+X:end),'%f,')
V = 6×1
0.54187 0.00057524 -3.835e-05 0 0 0

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jan
Jan am 9 Feb. 2021
A = ['position: [0.5418702363967896, 0.0005752428551204503, ', ...
'-3.834952076431364e-05, 0.0, 0.0, 0.0]'];
D = extractBetween(A, '[', ']');
data = sscanf(D{1}, '%g,')
  1 Kommentar
Baklouti Sana
Baklouti Sana am 9 Feb. 2021
@Jan Thank you for your response. However, I am using MATLAB 2016a and the function extractBetween is not supported.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Produkte


Version

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by