Matlab - ¿Cómo normalizar una matriz para que la suma de todos sus valores sea igual a 1?

 
Vista:
sin imagen de perfil
Val: 31
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo normalizar una matriz para que la suma de todos sus valores sea igual a 1?

Publicado por Simón (18 intervenciones) el 26/07/2020 00:44:13
Hola de nuevo a todos,

Tengo la siguiente matriz:

1
2
3
4
5
6
7
8
9
10
x =
 
     5     4     3     2     1     3     4     5
     6     6     6     6     6     6     6     6
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     6     6     6     6     6     6     6     6
     5     4     3     2     1     3     4     5

Como pueden ver, es una matriz de 64 valores. Necesito de alguna forma normalizar esa matriz y garantizar que la suma de todos los valores me de como resultado 1 (exactamente 1).
He intentado de la siguiente normalizar como siempre lo he hecho:
1
xNorm=x/norm(x);

Pero la suma no me da como resultado 1. ¿Tengo que aplicar una normalización diferente? ¿Alguien tiene alguna idea?

Gracias a todos.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo normalizar una matriz para que la suma de todos sus valores sea igual a 1?

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/07/2020 01:45:41
1
2
3
4
5
6
7
8
9
10
11
format short
     x=[5     4     3     2     1     3     4     5
     6     6     6     6     6     6     6     6
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     6     6     6     6     6     6     6     6
     5     4     3     2     1     3     4     5];
 xnorm=x/norm(x(:))
 N=norm(xnorm(:))

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab
Servicio de Asesoría Online en Matlab
[email protected]


https://serviciosprogramacioncaballero.blogspot.com/
https://codigoscaballero.blogspot.com/
https://algoritmoscaballero.blogspot.com/
https://www.facebook.com/serviceprogramacioncaballero/
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: 31
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo normalizar una matriz para que la suma de todos sus valores sea igual a 1?

Publicado por Simón (18 intervenciones) el 26/07/2020 23:19:17
Hola Jose,

Sí, soy consciente que la magnitud de la matriz es igual a 1 al ejecutar esa normalización. Pero lo que necesito es que la suma de todos los valores de la matriz xnorm sea igual a 1.
En este caso que me planteas no se cumple esa condición:
1
2
3
4
5
sum(xnorm(:))
 
ans =
 
    5.3503

¿Hay alguna otra manera de aplicar una normalización para que se cumpla esta condición?
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

¿Cómo normalizar una matriz para que la suma de todos sus valores sea igual a 1?

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 27/07/2020 00:07:36
1
2
x=(x./sum(x))/size(x,2)
suma=sum(sum(x))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
>> normalizar
x =
     5     4     3     2     1     3     4     5
     6     6     6     6     6     6     6     6
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     0     0     0     0     0     0     0     0
     6     6     6     6     6     6     6     6
     5     4     3     2     1     3     4     5
 
x =
    0.0284    0.0250    0.0208    0.0156    0.0089    0.0208    0.0250    0.0284
    0.0341    0.0375    0.0417    0.0469    0.0536    0.0417    0.0375    0.0341
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0
    0.0341    0.0375    0.0417    0.0469    0.0536    0.0417    0.0375    0.0341
    0.0284    0.0250    0.0208    0.0156    0.0089    0.0208    0.0250    0.0284
 
suma =
     1
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