Matlab - Renglón, Columna y Magnitud en una matriz.

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

Renglón, Columna y Magnitud en una matriz.

Publicado por Ricardo (218 intervenciones) el 28/10/2019 04:17:59
Hola buenos días.
Quiero encontrar un código que me indique el Renglón, la Columna y Magnitud de un elemento de una matriz. Para lo cual he elaborado el siguiente código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
%____________________________________________
clc; clear; close all; format short
N=3;
vctrs=[1    12  14
       12   51  14
       17   81  91
       19   10  12
       15   2   33
       16   17  18
       13   21  13
       15   31  3];
 
[val,pos]=min(vctrs);
 
for b=1:1:N
     Valor(b)=val(1,b)
     [renglon(b),columna(b)]=find(vctrs==Valor(b))
end
%____________________________________________________
Este código me da como resultado:
Valor =
1 2 3
renglon =
1 5 8
columna =
1 2 3
Lo cual es lo que ando buscando, pero si repito cualquiera de esos valores mínimos en cualquier renglón o columna me marca el siguiente error:
_________________________________________________
In an assignment A(I) = B, the number of elements in B and I must be the same.
Error in practica2 (line 16)
[renglon(b),columna(b)]=find(vctrs==Valor(b))
___________________________________________________
Las magnitudes que forman la matriz esta cambiando constantemente y algunas veces no me muestra este error, pero esto no es seguro.
Me gustaría que el código me indique la magnitud mínima por columna así como su posición y si en una sola columna están dos o tres mínimos repetidos que me marque solo la posición y la magnitud del primer valor mínimo de esa columna.
Espero 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
Val: 929
Bronce
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Renglón, Columna y Magnitud en una matriz.

Publicado por Daniel (281 intervenciones) el 28/10/2019 09:44:06
Hola,

La solución es fácil, hay que decirle a la función find que solamente devuelva un valor.

1
find(X, 1)

Se puede indicar que sea el primero o el ultimo pasando como segundo parámetros 'first' o 'last' respectivamente.

Otra opción es guardar el resultado en una variable temporal para verificar posteriormente el tamaño de esta. Especialmente para cuando no se puede estar seguro de que el valor existe. Pero, como en este caso, si se esta seguro que por lo menos hay un dato no es tampoco necesario.

Saludos,
Daniel Rodríguez.
Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 424
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Renglón, Columna y Magnitud en una matriz.

Publicado por Ricardo (218 intervenciones) el 28/10/2019 19:27:47
Gracias.
Voy a verificar lo que me dice.

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

Renglón, Columna y Magnitud en una matriz.

Publicado por JOSE JEREMIAS CABALLERO (5616 intervenciones) el 29/10/2019 23:00:27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
clc; clear;
matriz=[11   12  14
        9    51  14
        17   81  91
        19   10  13
        15   6   33
        9    17  13
        13   6   19
        9    31  13]
 [minimo_por_columna]=min(matriz);
   for b=1:length(minimo_por_columna)
       [fila,columna]=find(matriz(:,b)==minimo_por_columna(b));
       if length(fila)>1
           Fila(b)=fila(1);
       else
           Fila(b)=fila;
       end
        Columna(b)=b;
 
   end
   minimo_por_columna, Fila, Columna



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
33
34
35
36
37
38
39
40
41
42
>> magnitud_matriz
matriz =
    11    12    14
     9    51    14
    17    81    91
    19    10    13
    15     6    33
     9    17    13
    13     6    19
     9    31    13
 
minimo_por_columna =
     9     6    13
 
 
Fila =
     2     5     4
 
Columna =
     1     2     3
 
 
>> magnitud_matriz
matriz =
    11    12    14
     9    51    14
    17    81    91
    19    10   132
    15     6    33
     9    17   131
    13     6    19
     9    31    13
 
minimo_por_columna =
     9     6    13
 
Fila =
     2     5     8
 
 
Columna =
     1     2     3

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


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 424
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Renglón, Columna y Magnitud en una matriz.

Publicado por Ricardo (218 intervenciones) el 29/10/2019 23:02:03
Excelente !!!!
Muchas 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