Mostrando entradas con la etiqueta pseudocodigo. Mostrar todas las entradas
Mostrando entradas con la etiqueta pseudocodigo. Mostrar todas las entradas

sábado, 23 de marzo de 2019

Encontrar la posición del mínimo y máximo de un arreglo en MATLAB

Encontrar el mínimo y el máximo de los elementos de un arreglo en MATLAB es muy sencillo utilizando las funciones min y max.

Ejemplo:
arreglo=[4,2,-17,1,5,6,7,8,3,-2,16,28,2];
>> arreglo

arreglo =

     4     2   -17     1     5     6     7     8     3    -2    16    28     2

>> [a,b]=min(arreglo)

a =

   -17


b =

     3

>> [c,d]=max(arreglo)

c =

    28


d =

    12 Sin embargo, si se quiere realizar usando ciclos y comparativas lo podemos realizar de la siguiente manera:


clc%limpiar la ventana de comandos
clear%borrar las variables declaradas
close all%cerra las ventanas de figuras
%% ejemplo para encontrar minimo y maximo
%declaramos nuestro arreglo llamado "arreglo"
arreglo=[4,2,-17,1,5,6,7,8,3,-2,16,28,2];
%declaramos una variable llamada "num_max" para almacenar al número más
%grande del arreglo, al cual le asignamos el valor del arreglo en su
%posicion inicial, en el caso de matlab en la posición 1, si se trata de
%otro lenguaje de programación seria la posicion 0
num_max=arreglo(1);
pos_num_max=1;%declaramos la variable para almacenar la posicion, como
%a num_max le asignamos el valor de la posición 1 a pos_num_max le
%asignamos 1
%realizamos lo mismo para el numero más pequeño
num_min=arreglo(1);
pos_num_min=1;%declaramos la variable para almacenar la posicion, como
%a num_max le asignamos el valor de la posición 1 a pos_num_min le
%asignamos 1
%ahora creamos un ciclo for que vaya desde segunda posición del arreglo
%hasta el tamano total de elementos del arreglo, pues ya vimos la primer
%posicion
for i=2:1:length(arreglo)
    %aqui inician las comparaciones recorriendo cada uno de los ementos del arreglo
    %comparamos el valor del elemento del arreglo en su posicion i, si es
    %menor entonces asignamos ese eleento a nuestra variable num_min y así
    %sucecivamente hasta recorrer todo el arreglo tendiendo al final
    %en nuestra variable num_min el elemento con el menor valor
    if arreglo(i)<num_min
        num_min=arreglo(i);
        pos_num_min=i;%actualizamos la pocicion asignando el valor de i
    end
    %lo mismo hacemos para encontrar el elemento de mayor valor pero cambiamos
    %el signo de comparacion por lo cual al terminar todas las iteraciones
    %tendremos en num_max al elemento de mayor valor
    if arreglo(i)>num_max
        num_max=arreglo(i);
        pos_num_max=i;%actualizamos la pocicion asignando el valor de i
    end
end
 


Encontrar mínimo y máximo de una matriz en MATLAB

clc%limpiar la ventana de comandos
clear%borrar las variables declaradas
close all%cerra las ventanas de figuras
%% ejemplo para encontrar minimo y maximo en una matriz
%declaramos nuestro arreglo llamado "arreglo"
matriz=[4,2,-17,1;5,6,7,9;-2,16,28,2];
%declaramos una variable llamada "num_max" para almacenar al número más
%grande de la matriz, al cual le asignamos el valor de la matriz en su
%posicion inicial, en el caso de matlab en la posición (1,1), si se trata de
%otro lenguaje de programación seria la posicion (0,0)
num_max=matriz(1,1);
%realizamos lo mismo para el numero más pequeño
num_min=matriz(1,1);
%ahora creamos dos ciclos for anidados que recorran todas las posiciones de la matriz
%aunque ya vimos que hay en la posicion (1,1) no tendremos problemas
%creamos dos variables, m y n para saber las dimensiones de la matriz y
%poder configurar nuestros ciclos
[m,n]=size(matriz);%obtenemos la cantidad renglones y columnas de la matriz
for i=1:1:m%ciclo que recorre los renglones
        for j=1:1:n%ciclo que recorre las columnas
        %aqui inician las comparaciones recorriendo cada uno de los ementos de la matriz
        %comparamos el valor del elemento del arreglo en su posicion (i,j), si es
        %menor entonces asignamos ese elemento a nuestra variable num_min y así
        %sucesivamente hasta recorrer toda la matriz teniendo al final
        %en nuestra variable num_min el elemento con el menor valor
        if matriz(i,j)<num_min
            num_min=matriz(i,j);
        end
        %lo mismo hacemos para encontrar el elemento de mayor valor pero cambiamos
        %el signo de comparacion por lo cual al terminar todas las iteraciones
        %tendremos en num_max al elemento de mayor valor
        if matriz(i,j)>num_max
            num_max=matriz(i,j);
        end
    end
end