1
我有一個MATLAB矩陣,它有4列和290,000行。每5000行我有新的數據,我想與其餘數據分開繪製。如何將具有290,000行的矩陣分割爲矩陣/ 5,000行的塊並繪製矩陣?如何分割MATLAB矩陣和繪圖數據?
我有一個MATLAB矩陣,它有4列和290,000行。每5000行我有新的數據,我想與其餘數據分開繪製。如何將具有290,000行的矩陣分割爲矩陣/ 5,000行的塊並繪製矩陣?如何分割MATLAB矩陣和繪圖數據?
這裏有幾個選項可以歸結爲 - 你想把所有的數據繪製成一行還是單行?
選項1
使用循環繪製的5000行每個情節。在這裏,我假設你只繪製第一列。例如:
axesHandle = axes;
axesHandle.NextPlot = 'add';
totalRowCount = 290000;
episodeRowCount = 5000;
for ii = 1:episodeRowCount:totalRowCount
startRowIndex = ii;
endRowIndex = startRowIndex + episodeRowCount - 1;
if endRowIndex > totalRowCount
endRowIndex = totalRowCount;
end
plot(YOURDATAMATRIX(startRowIndex:endRowIndex,1), 'Parent', axesHandle);
end
選項2
插入NaN值的一排5000個記錄每次發作後,然後繪製事件的整個集合一次。我再次假設你只繪製第一列。這裏的技巧是插入行的時候,這樣的位置,你需要插入下一行不受已經做好了刀片向後從矩陣的工作進行到底:
totalRowCount = 290000;
episodeRowCount = 5000;
lastInsertRowIndex = floor(totalRowCount/episodeRowCount) * episodeRowCount;
for ii = lastInsertRowIndex:-episodeRowCount:1
insertRowIndex = ii + 1;
YOURDATAMATRIX = vertcat(...
YOURDATAMATRIX(1:insertRowIndex,:), ...
[ NaN NaN NaN NaN ], ...
YOURDATAMATRIX(insertRowIndex:end,:));
end
plot(YOURDATAMATRIX(startRowIndex:endRowIndex,1));
選項3
將要繪製的列重新整形爲5000 x N矩陣,然後在繪圖命令中使用此新矩陣。例如:
reshapedFirstColumn = reshape(YOURDATAMATRIX(:,1), 5000, 290000/5000);
plot(reshapedFirstColumn);