2

我编写了一个程序,它可以获取大量数据并生成图形。如果我可以在现有图形上绘制曲线并将它们的值加在一起以形成一条曲线,那将非常方便并节省大量时间。举个简单的例子,假设我有以下代码,

x = [0 1 2 3 4 5];
y = [0 1 2 3 4 5];
z = [4 6 2 8 7 9];

figure
plot(x,y,x,z)   

此代码将生成一个带有两条曲线的图形。在不修改代码或重新运行程序的情况下,只使用图形选项,我想将曲线 y + z 添加到绘图中。这可能吗?谢谢。

我不想添加该功能的原因是绘图代码隐藏在 8 个循环中,这些循环调用来自文件名字符串的 4D 单元数组的数据。

4

1 回答 1

2

如果你在图中使用了x,yz变量,你可以在图中添加新行

hold on
plot(x,y+z)
hold off

如果您没有直接拥有它们(例如,它们是在函数中生成的,您总是可以从带有线对象属性的图形XData中获取它们。YData

hline = findobj(gca,'type','line');
x = get(hline,'XData');
y = get(hline,'YData');
X = x{1}; % let's assume that all lines have the same x values.
Y = sum(cell2mat(y));

hold on
plot(X,Y)
hold off
于 2013-04-09T15:54:22.877 回答