I plot a figure by using a function from a package.
Now I'd like to know the x and y values once I plot the curve.
Where are they stored

 采纳的回答

Try this:
F = openfig('untitled.fig');
ax = gca;
lines = findobj(ax, 'Type','Line');
for k = 1:numel(lines)
x{k,:} = lines(k).XData;
y{k,:} = lines(k).YData;
end
The x- and y-data for each line are in their appropriate cell arrays.

4 个评论

that works great,
One last thing fi you could.
I need to plot but with a diffferent x
x = -0.2:0.01:0.8;
Can you just write me a piece of code for that, please?
Something like this
for k = 1:numel(lines)
y{k,:} = lines(k).YData;
plot(FlowVector,y{k,:})
hold on
end
the x is always the same
I am not certain what you intend withh ‘...plot but with a different x
Two possibilities:
F = openfig('Puntitled.fig');
ax = gca;
lines = findobj(ax, 'Type','Line');
for k = 1:numel(lines)
x{k,:} = lines(k).XData;
y{k,:} = lines(k).YData;
end
newx = -0.2:0.01:0.8;
for k = 1:numel(lines)
newy{k,:} = interp1(x{k}, y{k}, newx, 'linear','extrap'); % Interpolate-Extrapolate
end
or:
figure
plot(newx, cell2mat(newy)) % Plot Interpolated Values
grid
figure
plot(cell2mat(x).', cell2mat(y).') % Plot Previous Data With New X-Axis Ticks
xt = get(gca, 'XTick');
set(gca, 'Xtick',xt, 'XTickLabel',newx)
grid
One of these should do what you want.
for k = 1:numel(lines)
figure(4)
plot(FlowVector,y{k,:})
grid on
hold on
end
here's is the solution.
Man, thank you a lot, you really helped me.
I couldn't figured out without your help.
As always, my pleasure!
That’s what I’m here for!

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Annotations 的更多信息

产品

版本

R2014b

标签

Community Treasure Hunt

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

Start Hunting!

Translated by