ich habe von einem Signal die Schnittpunkte bei 66% und bei 33% bestimmt (Siehe Abbilung). Ich bekomme mehre Schnittpunkte, ich brauche aber nur den nächst mögliche Punkte von 66% bis zum 33% und Umgekehrt. Da ich mehrere Signal habe die ihre Form änder, brauche ich ein Tipp, wie man den nächst möglichen Punkte zwischen den Schnittpunkten bei 66% bis 33% herraus findet.
Ich habe etwas geschrieben aber es klapt nicht so richtig.
Code:
l33=length(cut_sixdb); % in cut_sixdb sind die Schnittpunkte definiet
l66=length(cut_twentydb);% in cut_twentydb sind die Schnittpunkte defini [pos,wert] = max(X);
for i=1:l66
if i==l66 %wenn i==l66 soll er aufhören, da es kein cut_twentydb(i+1) gibt %%
elseif cut_twentydb(i)< wert && cut_twentydb(i+1) > wert
Azu=cut_twentydb(i);
end end
%%%Von 100 bis 66 for i=1:l66
if i==l66
else cut_twentydb(i)< wert && cut_twentydb(i+1)> wert
Bab=cut_twentydb(i+1);
end end
kannst Du nochmal genauer beschreiben, welche Schnittpunkte Du brauchst und welche nicht. Vielleicht kannst Du das auch im Diagramm markieren.
Bitte benutze für Matlab-Code im Posting die Code-Umgebung, der Knopf oben in der Mitte. So wird der Code lesbarer und es gibt keine Probleme mit Sonderzeichen.
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
PAD
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.05.2008, 17:12
Titel:
Danke für deine Anwort nschlange,
ich habe das Bild noch mal hochgeladen und die Schnittpunkte die brauche habe ich mit einem Pfeil makiert.
Zu sehen sind 3 Schnittpunkte auf der 66% Skala und mehre Schnittpunkte auf der 33% Skala.
Ich will das von den 3 Schnittpunkten auf 66% Skala, der am nähst liegender Schnittpunkt von 33% Skala angezeit wird. Also den Schnittpunkt das ganz nah an den Schnittpunkt von der 33% Skala ist.
min_3=1;
min_6=1;
min_=Inf;
for i = 1:length(sp3) for j = 1:length(sp6)
tmp=abs(sp3(i)-sp6(j));
if tmp<min_
min_3=i;
min_6=j;
end
min_=tmp;
end end figure,plot(t1,EMGaus_1,'k') hold on
plot(t1,dreizig,'r') plot(t1,sixty,'g') plot(sp6(i,1),sp6(i,2),'r.','Markersize',15);
plot(sp3(i,1),sp3(i,2),'r.','Markersize',15);
sp3(i,:)=[];
sp6(i,:)=[];
plot(sp6(:,1),sp6(:,2),'ko');
plot(sp3(:,1),sp3(:,2),'ko');
saveas(gcf,'Schnittpunkte','jpg')
Das sind nicht genau die Daten aus Deinem ersten Bild, oder?
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
PAD
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 15.05.2008, 21:18
Titel:
Danke das du das Programm geschrieben hast, hat mich sehr gefreut.
Ich wollte fragen ist es möglich den nächst liegenden Schnittpunkt zu finden, wenn er nicht auf der gleichen Skala liegt.
Zum Beispiel :
Bei sp6 liegt der erste Schnittpunkt nähe an den dritten Schnittpunkt von sp3 (siehe Bild Schnittpunkt1). Da ich sehr viele EMG daten habe, brauche ich ein programm das mir die nah liegenden Schnittpunkte sucht und sie wie in der Abbildung (siehe Bild Schnittpunkt)dargestellt. Und ich brauche die Zeit zwischen den beiden Punkten.
Die nah liegenden Schnittpunkten habe ich mit der Hand eingegeben, es wäre super wenn ein programm die nah liegenden Schnittpunkten selbst herraus findet.
Code:
for xx=cut_twentydb(end):cut_sixdb(end)
%ui=X(xx) plot([t1(xx) t1(xx)],[0 X(xx)],'g') end hold on
for xx=cut_sixdb(3):cut_twentydb
%ui=X(xx) plot([t1(xx) t1(xx)],[0 X(xx)]) hold on
end
Wäre nett wenn du mir noch mal hilfst. Danke nschlange
1. Zu jedem Schnittpunkt mit 66 db denjenigen Schnittpunkt mit 33 db finden, der kleinstes Delta x hat. Diese Kombinationen geeignet merken.
2. Jetzt zu jedem Schnittpunkt mit 33 db denjenigen Schnittpunkt mit 66 db finden, der kleinstes Delta x hat. Diese Kombinationen auch geeignet merken.
3. Hat man eine Kombination von Schnittpunkten in beiden Schritten gefunden sind dies die Schnittpunkte, die Du suchst, oder?
_________________
Viele Grüße
nschlange
"Chuck Norris ejakuliert fluessigen Stahl!"
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.