how to execute str2num or str2double in matlab?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
MEENAL SINGHAL
el 9 de Mayo de 2018
I am having trouble using commands str2num.
I have a character
t='2'
'u1'
'u2 '
I used the command p=str2double(char(t)). Right now if I use str2num, a null array appears in the output whereas using str2double gives NaN in output. While searching about these I learned that these character values are not converted to numbers.
I wanted p to store values [2, 1, 2]. How can I do that? Thanks for reading...
4 comentarios
per isakson
el 9 de Mayo de 2018
Editada: per isakson
el 9 de Mayo de 2018
Hint:
t = { '2' 'u1' 'u2 '};
c = regexp( t, '[\d ]+', 'match' );
p = cellfun( @str2double, c )
outputs
p =
2 1 2
Respuesta aceptada
Stephen23
el 9 de Mayo de 2018
Editada: Stephen23
el 9 de Mayo de 2018
Simple, and possibly the most efficient way:
>> t = {'2','u1','u2 '};
>> sscanf([t{:}],'%du')
ans =
2
1
2
2 comentarios
Stephen23
el 9 de Mayo de 2018
Editada: Stephen23
el 9 de Mayo de 2018
@MEENAL SINGHAL: Perhaps you are asking about how to write a maths parser, which in general is not a trivial task. What operators do you expect to have? For simple multiplication:
>> t = {'u0*2','u1*2','u2*2'};
>> v = sscanf([t{:}],'u%d*%d');
>> v(1:2:end).*v(2:2:end)
ans =
0
2
4
Más respuestas (0)
Ver también
Categorías
Más información sobre Numeric Types en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!