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