0
我繪製了2個圖表,其中實時數據正在繪製成功。我想用第三張圖作爲實驗目的。
我在MatLab中這樣做。 下面是代碼:使用MatLab在單個窗口中繪製3個活動圖?
fse = 220;
fsa = 50;
secBuffer = 10;
accName = {'F/B'; 'U/D'; 'R/L'};
accBuffer = zeros([fsa*secBuffer,numel(accName)]);
final = eegBuffer*5;
eegCounter = 0;
plot1 = true;
conf1 = true;
if eegCounter == 44
if plot1
subplot(3,1,1);
time = 0:1/fse:secBuffer-1/fse;
h1 = plot(time,eegBuffer);
legend(eegName, 'Location','EastOutside');
xlabel('Time (s)')
ylabel('Voltage (uV)')
subplot(3,1,2);
time = 0:1/fsa:secBuffer-1/fsa;
h2= plot(time,accBuffer);
xlabel('Time (s)')
ylabel('Acceleration (mG)')
legend(h2, accName, 'Location','EastOutside');
subplot(3,1,3);
time = 0:1/fse:secBuffer-1/fse;
h3 = plot(time,eegBuffer);
xlabel('final');
ylabel('time');
%legend(h2, accName, 'Location','EastOutside');
plot1 = false;
else
cell1 = (num2cell(eegBuffer,1))';
set(h1,{'ydata'},cell1);
cell2 = (num2cell(accBuffer,1))';
set(h2,{'ydata'},cell2);
cell3 = (num2cell(final,1))';
set(h3,{'ydata'},cell3);
end
的final
值是eegBuffer*5
。
eegBuffer
由於第三圖是僅僅第一圖形的幅度被定義爲eegBuffer = zeros([fse*secBuffer,numel(eegName)]);
,應當相比於第一圖形更具破壞性曲線圖。然而,它顯示了一條直線,我無法分辨它是否繪製第3個圖的實時數據。
幫助表示讚賞
eegBuffer的值永遠不會爲零。它是根據'secBuffer'和'eegName'的值計算的。 secBuffer的值是10,eegName是通道的名稱:'{'TP9'; 'FP1'; 'FP2'; 'TP10'}'。並且eegBuffer通過以下公式計算:'eegBuffer = zeros([fse * secBuffer,numel(eegName)]);' – brainReader 2014-10-08 09:19:45
如果您的最後一句中的賦值是唯一賦值給變量eegBuffer,那麼它將是一個零矩陣。函數零的文檔狀態「零(M,N)或零([M,N])是零的M×N矩陣。」 – danny 2014-10-08 09:31:12
我明白了。看'subplot(3,1,1)'。它類似於第3個圖,第1個圖可以繪製實時數據,eegBuffer的值在第1個圖中使用。我不明白爲什麼它在第三張圖中變爲零。 – brainReader 2014-10-08 09:44:10