Matlab - Comparar segmentos de un vector

 
Vista:
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Comparar segmentos de un vector

Publicado por Ricardo (218 intervenciones) el 06/03/2018 21:29:44
Hola buenos días.

Tengo un problema, que espero me puedan dar soporte o consejo:
Tengo el siguiente vector columna de 20 elementos(el real es de 1000 elementos):

A=[6.9563
6.9563
6.9563
6.9563
6.9563
7.4917
5.8343
5.3075
5.8713
7.1312
11.2175
11.2175
11.2175
11.2175
11.2175
10.4278
10.9766
11.2685
9.4748
11.3789]

La pregunta es como comparo (mayor que >) los primeros 5 elementos con los segundos 5 elementos del vector A

6.9563 7.4917
6.9563 5.8343
6.9563 5.3075
6.9563 5.8713
6.9563 7.1312

y después de terceros 5 elementos con los cuartos 5 elementos del vector A y así sucesivamente de forma automática, si el vector A es de 1000 elementos

11.2175 10.4278
11.2175 10.9766
11.2175 11.2685
11.2175 9.4748
11.2175 11.3789

Espero me entiendan y me ayuden.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Comparar segmentos de un vector

Publicado por Gerardo (104 intervenciones) el 06/03/2018 22:30:55
Hola!
Cómo quieres que se represente la comparación?
con ambos valores ordenados? con un símbolo > o < entre ambos valores? solo el mayor de ambos?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Comparar segmentos de un vector

Publicado por Ricardo (218 intervenciones) el 06/03/2018 22:52:18
Hola gracias por contestar
por ejemplo los 5 valores primeros del vector columna A son
6.9563
6.9563
6.9563
6.9563
6.9563
los segundos valores son
7.4917
5.8343
5.3075
5.8713
7.1312
los segundos valorares tienen al menos una valor mayor que los primeros cinco por lo tanto los segundos valores pasarían como parte de un vector columna. Después se comparan los terceros cinco valores que son
11.2175
11.2175
11.2175
11.2175
11.2175
con los cuartos cinco valores
10.4278
10.9766
11.2685
9.4748
11.3789
Como los últimos 5 valores tienen al menos un valor mayor que los anteriores pasan los valores como parte de un vector columna.
al final tendría un vector B
B=[7.4917 5.8343 5.3075 5.8713 7.1312 10.4278 10.9766 11.2685 9.4748 11.3789]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Comparar segmentos de un vector

Publicado por Gerardo (104 intervenciones) el 07/03/2018 01:19:23
Hola, Que sucede si hay valores mayores repetidos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Comparar segmentos de un vector

Publicado por Ricardo (218 intervenciones) el 07/03/2018 04:45:20
Hola buenas noches.

No importa los valores repetidos. Lo que importa que al menos un valor de los 5 valores comparados sea mayor de los otros 5 valores. Observa la explicación dada anteriormente.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Comparar segmentos de un vector

Publicado por Gerardo (104 intervenciones) el 07/03/2018 15:37:17
Hola, me refiero a que si ese valor máximo está en las dos columnas a comparar.


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
30
31
32
clear all; clc;
a = [6.9563
6.9563
6.9563
6.9563
6.9563
7.4917
5.8343
5.3075
5.8713
7.1312
11.2175
11.2175
11.2175
11.2175
11.2175
10.4278
10.9766
11.2685
9.4748
11.3789];
b=[];
i=0;
while i <= length(a)/10-1
    if max(a(10*i+1:i+5,1)) > max(a(10*i+6:10*(i+1),1))
        b(10*i+1:i+5,1) = a(10*i+1:i+5,1);
        i=i+1;
    else
        b(5*i+1:5*i+5,1) = a(10*i+6:10*(i+1),1);
        i=i+1;
    end
end

Obviamente, esto no sirve si el máximo de las columnas a comparar son iguales, de ahí mi pregunta. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 352
Ha disminuido 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Comparar segmentos de un vector

Publicado por Ricardo (218 intervenciones) el 07/03/2018 17:02:59
Hola buenos días.

Ya entendí su pregunta.

En dado ese caso muy especifico, en que los dos grupos a comparar tengan el mismo valor máximo, en este caso, cualquier de los dos segmentos comparados pasaría a formar el vector B

Ya corrí su código y si hace lo que necesito, el vector A real es de 400 valores pero me voy a guiar en este ejemplo de 20 valores.

Muchísimas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Comparar segmentos de un vector

Publicado por Gerardo (104 intervenciones) el 07/03/2018 17:16:00
Me alegra que te sirva, si cualquier segmento te sirve cambiar el ">" por un ">=".

Saludos!
Gerardo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar