Unir vectores con el valor mas alto #2
Publicado por jose david (28 intervenciones) el 04/07/2020 23:01:15
Estimada comunidad
Espero se encuentren bien.
Necesito ayuda frente a un ejercicio que he intentado en diversas oportunidades de solucionar, pero aún no he logrado mi objetivo
Intento unir dos espectros de datos (conjuntos de valores X, Y) los cuales se sobreponen en sus extremos de continuidad (el extremo derecho de uno de los espectros se solapa con el extremo izquierdo del siguiente), esto conlleva a que exista una zona con dos valores de Y.
Para solucionar este problema considere que lo mejor para los fines del experimento era que "Sobreviviera" el valor de Y más alto por lo cual use un código generado por el señor Jose Jeremias de la forma
El cual me entrego unos resultados con picos que saltan desde un valor a otro como se ve en el siguiente anexo

Posterior a esto intente realizar unos cambios al código de la forma :
lo cual me entrega unos mejores resultados como se ven en la siguiente grafica

Pero aún no he podido solucionar el problema por que como se pueden dar cuenta donde deben ir picos existen unos pequeños valles , lo que me dificulta la aplicabilidad del código
Si es necesaria que cargue la parte del código que me permitió volver los archivos matrices, me indican para cargarlos
Adjunto los dos archivos formato (.Csv) que se comentan en este post.
De verdad quedo muy atento, a cualquier indicación o ayuda
Mil gracias
Espero se encuentren bien.
Necesito ayuda frente a un ejercicio que he intentado en diversas oportunidades de solucionar, pero aún no he logrado mi objetivo
Intento unir dos espectros de datos (conjuntos de valores X, Y) los cuales se sobreponen en sus extremos de continuidad (el extremo derecho de uno de los espectros se solapa con el extremo izquierdo del siguiente), esto conlleva a que exista una zona con dos valores de Y.
Para solucionar este problema considere que lo mejor para los fines del experimento era que "Sobreviviera" el valor de Y más alto por lo cual use un código generado por el señor Jose Jeremias de la forma
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
E=[];
a=whos('Qr*'); % las matrices eran Q1, Q2...
for i=1:size(a,1)
E=[E; eval(a(i).name)];
end
F=sortrows(E) ;
G=unique(F(:,1));
for i=1:length(G)
H=find(F(:,1)==G(i));
I=F(H,2);
maximo=max(I);
D1(i,:)=[G(i), maximo];
end
D1
end
El cual me entrego unos resultados con picos que saltan desde un valor a otro como se ve en el siguiente anexo

Posterior a esto intente realizar unos cambios al código de la forma :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
E=[];
a=whos('Qr*');
for i=1:size(a,1)
E=[E; eval(a(i).name)];
end
F=sortrows(E) ;
G=unique(F(:,1));
for i=1:length(F)
H=find(abs(F(:,1)-F(i))<0.022);
I=F(H,2);
maximo=max(I);
D1(i,:)=[F(i), maximo];
end
lo cual me entrega unos mejores resultados como se ven en la siguiente grafica

Pero aún no he podido solucionar el problema por que como se pueden dar cuenta donde deben ir picos existen unos pequeños valles , lo que me dificulta la aplicabilidad del código
1
findpeaks
Si es necesaria que cargue la parte del código que me permitió volver los archivos matrices, me indican para cargarlos
Adjunto los dos archivos formato (.Csv) que se comentan en este post.
De verdad quedo muy atento, a cualquier indicación o ayuda
Mil gracias
- espectro.rar(17,1 KB)
Valora esta pregunta


0