我编写了一个程序,它需要大量数据并生成图形。如果我可以在现有图形上绘制曲线并将它们的值相加以形成单个曲线,那将非常方便并节省大量时间。举个简单的例子,假设我有以下代码,
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单元格数组调用数据。
答案 0 :(得分:2)
如果您在地块中使用了x
,y
和z
变量,则可以使用
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