How to get data from figure?
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Deniz
am 10 Nov. 2013
Beantwortet: Walter Roberson
am 11 Nov. 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
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 11 Nov. 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
0 Kommentare
Weitere Antworten (2)
dpb
am 10 Nov. 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.
0 Kommentare
Deniz
am 10 Nov. 2013
1 Kommentar
Walter Roberson
am 11 Nov. 2013
The last argument to linspace() needs to be a count, not an increment. Use ":" if you want an increment
1 : 0.1 : 3
Siehe auch
Kategorien
Mehr zu Graphics Object Properties finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!