Matlab - leer y tomar datos de pagina web

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

leer y tomar datos de pagina web

Publicado por jose david (28 intervenciones) el 13/05/2020 23:48:17
Estimada comunicad buen día
Quiero indicar que me encuentro agradecido con el adelanto al trabajo que me encuentro realizando...

ahora me encuentro en otro dilema que no he dado para programar


Quiera que mi algoritmo en matlab pueda leer una pagina web y poder tomar unos datos, pues esta pagina contiene una base de datos util.

" ya he encontrado la forma de enviar el paquete de informacion y leer las respuestas con el comando webread"..

este comando me entrega un char de 1 x 60 000 caracteres

dentro de estos se encuentra la informacion que requiero que por cierto se me entrega como un cvs, con todos los comandos internos de la pagina que no necesito , los datos que necesito se encuetran entre una llave de la forma
var dataDopplerArray=

hasta var dataSticksArray=


para darles un ejemplo se encuentra de esta forma

informacion no util
...
...
...

comando que me separa la informacion util

var dataDopplerArray=[[{label:'Wavelength (nm)',type:'number'},{label:'Sum',type:'number'},{label:'C II (3.1e-01)',type:'number'},{label:'C III (8.0e-08)',type:'number'}],

DATOS DE INTERES

[200.065,1.457e-14,null,1.457e-14],
[200.070,2.555e-14,null,2.555e-14],
[200.075,3.956e-14,null,3.956e-14],
[200.080,5.405e-14,null,5.405e-14],
[200.085,6.519e-14,null,6.519e-14],
[200.090,6.939e-14,null,6.939e-14],
[200.095,6.519e-14,null,6.519e-14],
[200.100,5.405e-14,null,5.405e-14],
FIN DATOS DE INTERES
comando que me finaliza la informacion de interes
var dataSticksArray=[[{label:'Ritz wavelength (nm)',type:'number'},{label:'C II (3.1e-01)',type:'number'},{label:'C III (8.0e-08)',type:'number'}],
mas informacion no util
....


Entonces me gustaria separa esta informacion y si fuese posible pasar esos datos de cvs a una matrix de datos


Muchas gracias
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: 57
Ha disminuido su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por jose david (28 intervenciones) el 14/05/2020 04:50:32
claro, tanto asi la pagina tiene una opcion en la cual me permite exportar los datos en 3 formatos ASCII-CSV Y HTML, si das click en CSV te daras cuenta que la pagina entrega la respuesta como una tabla que para mi seria perfecto pues podria pasarlo como matrix en matlab y trabajar el problema es que no se mucho de http o o php y no se como pues desde matlab usar esos datos

el link :

https://physics.nist.gov/cgi-bin/ASD/lines1.pl?composition=C%3A100&mytext%5B%5D=C&myperc%5B%5D=100&spectra=C0-2&low_w=200&limits_type=0&upp_w=220&show_av=2&unit=1&resolution=10000&temp=1&eden=1e17&libs=1


De verdad muchas gracias por su tiempo lo valoro mucho
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/05/2020 06:08:25
Estimado Jose David.
Si es posible hacer el código que desea.
Sugerencia:
usar los comandos que a continuación menciono.
1. webread
2. strfind
3. bucles for o while
4. celdas
5. str2num
6. char.
7. valorinicial:incremento:valorfinal.
8. shorG
9. length

Con esos comandos se puede hacer.

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab
[email protected]


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
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: 57
Ha disminuido su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por jose david (28 intervenciones) el 14/05/2020 17:10:07
Estimado Jose Jeremias
La verdad estaba pensando y programando algo como eso.
pero me quedo atascado en la idea del for o while pues no tengo muy claro que hacer en esta parte


Muchas gracias por tu tiempo
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/05/2020 17:55:09
Estimado David podría subir su avance de su código.
Con las funciones que le he mostrado sale lo que desea hacer. Uno de los bucles sirve para sustituir el texto null en por un número.
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: 57
Ha disminuido su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por jose david (28 intervenciones) el 15/05/2020 17:26:53
Estimado Jose Jeremias
le comento

aplique lo siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
data=webread('https://physics.nist.gov/cgi-bin/ASD/lines1.pl?composition=C%3A100&mytext%5B%5D=C&myperc%5B%5D=100&spectra=C0-2&low_w=200&limits_type=0&upp_w=210&show_av=2&unit=1&resolution=100&temp=1&eden=1e17&maxcharge=2&min_rel_int=0.01&libs=1')
 
 
k = strfind(data,'var dataDopplerArray=[[{label:')
 
j = strfind(data,'var dataSticksArray=[[{label:')
 
data=data(k:j)
 
k = strfind(data,'}],')
j = strfind(data,']];')
 
k=k+5
 
data= data(k:j)
 
data =
'200.1,9.641e-05,9.641e-05,8.236e-16],
     [200.6,1.377e-04,1.377e-04,9.646e-16],
     [201.1,1.740e-04,1.740e-04,9.984e-16],
     [201.6,1.945e-04,1.945e-04,9.130e-16],
     [202.1,1.927e-04,1.927e-04,7.379e-16],
     [202.6,1.694e-04,1.694e-04,5.270e-16],
     [203.1,1.326e-04,1.326e-04,3.327e-16],
     [203.6,9.336e-05,9.336e-05,1.858e-16],
     [204.1,6.015e-05,6.015e-05,9.221e-17],
     [204.6,3.676e-05,3.676e-05,4.162e-17],
     [205.1,2.257e-05,2.257e-05,1.941e-17],
     [205.6,1.492e-05,1.492e-05,1.419e-17],
     [206.1,1.122e-05,1.122e-05,2.009e-17],
     [206.6,9.956e-06,9.956e-06,3.532e-17],
     [207.1,1.045e-05,1.045e-05,5.939e-17],
     [207.6,1.228e-05,1.228e-05,9.023e-17],
     [208.1,1.479e-05,1.479e-05,1.227e-16],
     [208.6,1.701e-05,1.701e-05,1.489e-16],
     [209.1,1.798e-05,1.798e-05,1.612e-16],
     [209.6,1.716e-05,1.716e-05,1.558e-16]'

ya con seleccionaria siempre los datos de interes solo que ahora estan escritos en csv me falta pasar esto a una matrix
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 15/05/2020 17:43:13
Estimado.
Una de las formas es usando la función strfind() para hacer lo que desea.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 15/05/2020 18:02:56
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: 57
Ha disminuido su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por jose david (28 intervenciones) el 15/05/2020 18:46:43
Estimado, jose Jeremias

Debo indicarle que para este caso particular, la forma como la pagina regresa los datos, es irrelevante el formulario de envio, pero agradezco la aclaracion.

Frente a la respuesta del uso de strfind para pasar los datos
'200.1,9.641e-05,9.641e-05,8.236e-16],
[200.6,1.377e-04,1.377e-04,9.646e-16],
[201.1,1.740e-04,1.740e-04,9.984e-16],
[201.6,1.945e-04,1.945e-04,9.130e-16],
[202.1,1.927e-04,1.927e-04,7.379e-16],
[202.6,1.694e-04,1.694e-04,5.270e-16],
[203.1,1.326e-04,1.326e-04,3.327e-16],
[203.6,9.336e-05,9.336e-05,1.858e-16],
[204.1,6.015e-05,6.015e-05,9.221e-17],
[204.6,3.676e-05,3.676e-05,4.162e-17],
[205.1,2.257e-05,2.257e-05,1.941e-17],
[205.6,1.492e-05,1.492e-05,1.419e-17],
[206.1,1.122e-05,1.122e-05,2.009e-17],
[206.6,9.956e-06,9.956e-06,3.532e-17],
[207.1,1.045e-05,1.045e-05,5.939e-17],
[207.6,1.228e-05,1.228e-05,9.023e-17],
[208.1,1.479e-05,1.479e-05,1.227e-16],
[208.6,1.701e-05,1.701e-05,1.489e-16],
[209.1,1.798e-05,1.798e-05,1.612e-16],
[209.6,1.716e-05,1.716e-05,1.558e-16]'

a una matrix, no me queda completamente claro, se si copio estos datos a un block de notas y luego lo abro con matlab este me da la opcion darle formato como matrix...
pero no se como hacer ese proceso desde codigo. o desde el formato char de los datos hacer que matlab le de formato matrix

muchas gracias
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: 57
Ha disminuido su posición en 3 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

leer y tomar datos de pagina web

Publicado por jose david (28 intervenciones) el 15/05/2020 23:07:41
listo el problema fue solucionado agregando los siguientes codigos

replace y posteriormente str2num

Muchas gracias
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

leer y tomar datos de pagina web

Publicado por Daniel (354 intervenciones) el 14/05/2020 09:15:31
Hola,

Si es un CSV la opción más sencilla es guardarlo en un archivo e importar. Algo que se puede hacer con:

1
2
urlwrite(myURL, myFileName);
data = csvread(myFileName);

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