Matrix data plot
3 次查看(过去 30 天)
显示 更早的评论
I have 4 vectors, x1,y1,x2,y2. where x1 and y1 represent starting points and x2 and y2 are end points of lines, which I want to plot. Each i-th pair [x1(i), y1(i) x2(i) y2(i)] represents new separated line.
I would like to execute the plotting with a single plot command. I plot my data with set(h1,'xdata',...,'ydata',...) command for speed optimization. Is it possible to execute the plotting with a single plot command ?
I appreciate your help!
0 个评论
采纳的回答
the cyclist
2012-1-20
The best way is to use x and y as data sources. I don't have much experience with this, but here is a working example. I tried to initialize with (0,0) or empty sets for x and y, but that choked for reasons that I do not understand. Maybe this will get you started, though.
x1 = rand(8,1);
x2 = rand(8,1);
x = [x1 x2]';
y1 = rand(8,1);
y2 = rand(8,1);
y = [y1 y2]';
figure
h = plot(x,y,'XDataSource','x','YDataSource','y');
for np = 1:10,
x1 = rand(8,1);
x2 = rand(8,1);
x = [x1 x2]';
y1 = rand(8,1);
y2 = rand(8,1);
y = [y1 y2]';
refreshdata(h,'caller')
drawnow
pause(0.5)
end
更多回答(3 个)
the cyclist
2012-1-20
Does this do what you mean?
x1 = rand(8,1);
x2 = rand(8,1);
y1 = rand(8,1);
y2 = rand(8,1);
plot([x1 x2]',[y1 y2]')
0 个评论
Gustl
2012-1-20
1 个评论
Sean de Wolski
2012-1-20
h = plot([x1 x2]',[y1 y2]')
You will see that h is a vector with a handle to each line data point. You could manually set the xdata/ydata for each line, this would likely be fast.
I would use a for-loop to generate n lines, each with it's own xdata/ydata.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Spline Postprocessing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!