我在动态更改绘图上显示的数据时遇到了一些问题。数据集存储在不同维度的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;
这种方法适用于在数据格式更好的情况下更新绘图,但是我似乎无法找到一种方法来组织有用格式的数据,以便进行绘图。
答案 0 :(得分:1)
要设置多个属性(因为p
是行对象的句柄数组),属性名称以及要设置的属性需要是单元格数组,请参阅例如this documentation page下"将线条样式设置为多行的不同值"举个例子。
在您的示例中,这将起作用:
set(p, {'XData'}, mat2cell(new_data, ones(1,3), 3));
另请参阅mat2cell
,在这种情况下,我使用它将new_data
重新整形为3x1单元格数组,每个数组包含new_data
的1x3行。