0

所以我有这个代码

if (e(i)>mean(e))
      fprintf('V1\n\n'); %E=High; Voiced
      c='r';
  end;

  if ((ntz(i)<mean(ntz))& (e(i)<mean(e)) & (e(i)>0.00005))
      fprintf('V2\n\n')';  % E= Low, NTZ= Low; Voiced
      c='r';
  end;

  if ((ntz(i)>mean(ntz))& (e(i)<mean(e)) & (e(i)>0.00005)) 
      fprintf('UN\n\n'); % NTZ=High; E=Low; Unvoiced
     c='b';
  end;

  if (e(i)< 0.00005)   %E=approx 0; Silence
      fprintf('S\n\n')';
      c='g';
  end;

  aux=y((i-1)*N+1:i*N);
  ttx=tx(i):1/fs:tx(i)+(N-1)/fs;
  plot(ttx,aux,c); 
  xlabel('Time');
  ylabel('Signal Amplitude');
  title('Voiced Unvoiced Silence Detection');

你可以看到在同一个图/信号上我有三种颜色。

我的问题是我想创建一个必须说的图例:Red = Voiced, Blue = Unvoiced, Green= Silence

谢谢

4

1 回答 1

0

我假设您在循环中执行此操作(对于 each i)。要分配图例标签,您可以存储每个线对象的返回句柄,并在最后使用它为每个对象提供标签:

for i=1:3
    %# ...
    h(i) = plot(x,y,clr);
end
legend(h, {'Plot1','Plot2','Plot3'})
于 2013-05-23T12:39:23.153 回答