如何使用2D数组设置Matlab线图的XData?

时间:2015-11-24 16:33:30

标签: matlab plot

我在动态更改绘图上显示的数据时遇到了一些问题。数据集存储在不同维度的2D数组中,在程序运行期间,只有矩阵的宽度会发生变化 - 所有元素的长度始终相同。这里的目的是使矩阵的每一行由线图上的线表示。

一个例子:

data = [1, 2, 3; 3, 4, 5; 4, 5, 6];
p = plot(data);
drawnow;

new_data = [7, 8, 9; 1, 2, 3; 4, 5, 6];
set(p, 'XData', new_data);
drawnow;

这种方法适用于在数据格式更好的情况下更新绘图,但是我似乎无法找到一种方法来组织有用格式的数据,以便进行绘图。

1 个答案:

答案 0 :(得分:1)

要设置多个属性(因为p是行对象的句柄数组),属性名称以及要设置的属性需要是单元格数组,请参阅例如this documentation page下"将线条样式设置为多行的不同值"举个例子。

在您的示例中,这将起作用:

set(p, {'XData'}, mat2cell(new_data, ones(1,3), 3));

另请参阅mat2cell,在这种情况下,我使用它将new_data重新整形为3x1单元格数组,每个数组包含new_data的1x3行。