Matlab - Notación cientifica

 
Vista:
sin imagen de perfil
Val: 3
Ha aumentado su posición en 25 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Notación cientifica

Publicado por AMM (2 intervenciones) el 04/03/2019 12:13:06
Mi problema parece inicialmente sencillo pero se ve que no lo es tanto, necesito que Matlab me escriba en un archivo la notación científica con una 'd' en lugar de una 'e' , eso es todo, como no soy capaz lo que he tratado es de reemplazarlo pero al ser mi archivo de este tipo:
cad1 =

struct with fields:

data: [1389×4 double]
textdata: {'Titulo'}

soy incapaz de hacerlo, entiendo que Matlab aunque el archivo sea de texto ve los números como tales y por tanto no me encuentra la 'e' como una letra.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Notación cientifica

Publicado por Daniel (354 intervenciones) el 04/03/2019 13:33:51
Hola,

El formato científico se puede obtener utilizando ‘%e’ en la función sprintf. Luego con strrep puedes cambiar los e por d, por ejemplo:

1
2
3
strrep(sprintf('%e', 1.121),'e', 'd')
 
1.121200d+00

Una vez hecho esto guardas la cadena de texto en un archivo.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 25 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Notación cientifica

Publicado por AMM (2 intervenciones) el 05/03/2019 12:01:40
Gracias pero no me funciona
me genera el siguiente Warning: Inputs must be character vectors, cell arrays of character vectors, or string arrays.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 918
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Notación cientifica

Publicado por Daniel (354 intervenciones) el 05/03/2019 15:20:50
Hola,

Tienes los datos en celdas, o iteras sobre ellos con un for o usas la función cellfun:

1
new_data = cellfun(@(x) strrep(sprintf('%e',  x),'e', 'd'), data)

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar