2017-02-15 3 views
2

Ich arbeite gerade an einem Sprachverarbeitungsprojekt und hatte eine kurze Frage bezüglich einer Zeitsignalform für ein Wort in Spanisch (aire).Ändern der Farbe des Wellenformdiagramms mit Zeitwerten

Aire

Ich möchte den Teil der Wellenform markieren, die das Phonem ai enthält. Mit Audacity war ich in der Lage, die Orte in der Zeit zu markieren, an denen das Phonem auftritt und wollte wissen, wie ich möglicherweise nur die Farbe dieses Teils der Wellenform ändern könnte.

Ich wurde angewiesen, die hold on Funktion in MatLab zu verwenden, bin mir aber nicht sicher, welche Parameter ich weitergeben sollte oder ob es leichtere Möglichkeiten gibt, dies zu erreichen.

Dank

Antwort

3

Eine einfache Lösung mit hold on:

% something to plot: 
x = 1:1000; 
y = sin(linspace(-pi,pi,1000)*10).^3; 
% the region of interest: 
ai_start = find(x>200); 
ai_end = find(x>400); 
% plotting: 
plot(x(1:ai_start-1),y(1:ai_start-1)); % first part 
hold on 
plot(x(ai_start:ai_end),y(ai_start:ai_end),'r')% the ai region 
plot(x(ai_end+1:end),y(ai_end+1:end),'Color',lines(1))% end part 
hold off 

colored line

+0

Jede Idee, wie ich das gleiche mit Werten tun könnte, die keine ganzen Zahlen für 'ai_start' und' ai_end' sind? Zum Beispiel bekomme ich derzeit Folgendes: 'Warnung: Integer-Operanden sind für den Doppelpunktoperator erforderlich, wenn sie als Index verwendet werden. –

+1

@ User5842 vorausgesetzt, Sie können den spezifischen Index für' x' finden, verwenden Sie einfach 'find'. Ich habe die Antwort bearbeitet, um dies zu demonstrieren. – EBH

+0

Arbeitete perfekt. Vielen Dank. –

Verwandte Themen