Borrar filtros
Borrar filtros

How to get data from figure?

3 visualizaciones (últimos 30 días)
Deniz
Deniz el 10 de Nov. de 2013
Respondida: Walter Roberson el 11 de Nov. de 2013
Hi,
I have a curve figure. How can i get the y-data (vector) for given x=linspace(0,R,c) out of figure?
Thanks

Respuesta aceptada

Walter Roberson
Walter Roberson el 11 de Nov. de 2013
xd = get(get(gca,'children'),'xdata'); % return the plot data
yd = get(get(gca,'children'),'ydata');
x = 1 : 0.1 : 3; %places to sample at
y = interp1(xd, yd, x); %interpolate from stored data at locations to be sampled

Más respuestas (2)

dpb
dpb el 10 de Nov. de 2013
x = get(get(gca,'children'),'xdata'); % return the plot data
y = get(get(gca,'children'),'ydata');
y=y(x(x==linspace(0,R,c)));
Trivial example from keyboard to illustrate...
>> plot(rand(1,3))
>> xdat=get(get(gca,'children'),'xdata');
>> ydat=get(get(gca,'children'),'ydata');
>> xvec=linspace(0,1,2);
>> y=ydat(ismember(xdat,xvec))
y =
0.8147
>>
You'll get some other value depending on state of rng at the time but the process should be clear to retrieve the data from the plot and find a location.
NB that if your x values are non-integer values you may need to make the comparison "fuzzy" rather than exact as is shown here.

Deniz
Deniz el 10 de Nov. de 2013
this solution doesn't work for me.
plot(rand(1,3))
xdat=get(get(gca,'children'),'xdata')
ydat=get(get(gca,'children'),'ydata')
xvec=linspace(1,3,0.1)
y=ydat(ismember(xdat,xvec))
what i get:
xdat =
1 2 3
ydat =
0.0462 0.0971 0.8235
xvec =
Empty matrix: 1-by-0
y =
Empty matrix: 1-by-0
I need the y-vector for a x-vektor:xvec=linspace(1,3,0.1)
Any other ideas?
Thanks
  1 comentario
Walter Roberson
Walter Roberson el 11 de Nov. de 2013
The last argument to linspace() needs to be a count, not an increment. Use ":" if you want an increment
1 : 0.1 : 3

Iniciar sesión para comentar.

Categorías

Más información sobre Graphics Object Properties en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by