I just need to get the numbers from this vector. The result must be a double. I need fast and clean code, as this operation is performed over and over again in my code.

1 visualizzazione (ultimi 30 giorni)
vector = {'G07'} {'G23'} {'G04'} {'G08'} {'G20'} {'G13'} {'G30'}
This code below is my code but it is slow when running too many times.
PRN = vector;
PRN = char(PRN);
PRN = PRN(:,2:end);
PRN = str2num(PRN);

Risposte (2)

Mathieu NOE
Mathieu NOE il 21 Set 2021
hello
try this alternative :
vector = [{'G07'} {'G23'} {'G04'} {'G08'} {'G20'} {'G13'} {'G30'}];
% Calling the regexp() function over the above cell array to extract number part
B = regexp(vector,'\d+(\.)?(\d+)?','match');
% Calling the str2double() function to convert the text to double-precision values
out = str2double([B{:}])

Stephen23
Stephen23 il 21 Set 2021
Modificato: Stephen23 il 22 Set 2021
Fastest:
C = {'G07','G23','G04','G08','G20','G13','G30'};
V = sscanf(sprintf('%s',C{:}),'G%f')
V = 7×1
7 23 4 8 20 13 30

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Prodotti


Release

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by