2015-11-24 78 views
1

我在動態更改圖上顯示的數據時遇到了一些問題。數據集存儲在不同維度的二維數組中,在程序運行過程中,只有矩陣的寬度會發生變化 - 所有元素的長度始終相同。這裏的意圖是讓矩陣的每一行由線條上的一條線表示。如何用2D數組設置Matlab線形圖的XData?

一個例子:

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

只是一句話:MATLAB是_column major_。這意味着如果您將矩陣作爲輸入發送到'plot',它會爲您的矩陣的每個**列**繪製一條「線」。 '轉置'功能(簡寫符號:'。')可以根據需要安排矩陣。 – Hoki

回答

1

要設置多個屬性(因爲p是線對象的句柄數組),所以屬性名稱以及要設置的屬性需要爲單元數組。例如,在「爲多行設置線條樣式爲不同值」下的this documentation page

在您的例子的情況下,這會工作:

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

參見mat2cell,在這種情況下,我用它來重塑new_data每個含new_data 1×3行中的3X1單元陣列。