Anuncio

Colapsar
No hay ningún anuncio todavía.

Variaciones con repetición en Matlab

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Matlab Variaciones con repetición en Matlab

    Hola!
    Primero quiero comentar que soy nueva en esto de los foros y en Matlab, así que me disculpo por adelantado si pregunto algo muy básico o bien meto la pata en el hilo.

    Estoy haciendo el trabajo de fin de grado y tengo que programar en Matlab. Una parte del programa requiere obtener una matriz a la que pueda acceder más adelante con las variaciones con repetición de un vector D-dimensional formado sólo con 1's y/o 0's. Me he peleado un buen rato con el código pero no ha habido manera de sacarlo... En este hilo http://forum.lawebdefisica.com/threa...%C3%B3n-Matlab hacían algo parecido pero eran permutaciones y no se guardaba en una matriz. He probado de modicarlo pero tampoco me ha salido nada decente... A ver si alguien tiene alguna idea y me puede ayudar, por favor.

    Muchas gracias por vuestro tiempo (:

  • #2
    Re: Variaciones con repetición en Matlab

    Perdón pero estoy un poco lento:


    Lo que buscarías sería, por ejemplo, si tenes un vector de dimensión 2, binario:




    Te devuelva la siguiente matriz?:


    Comentario


    • #3
      Re: Variaciones con repetición en Matlab

      Escrito por Marce_ Ver mensaje
      Perdón pero estoy un poco lento:


      Lo que buscarías sería, por ejemplo, si tenes un vector de dimensión 2, binario:




      Te devuelva la siguiente matriz?:


      Exactamente eso busco, sí!!

      Comentario


      • #4
        Re: Variaciones con repetición en Matlab

        Te adjunto algo a ver si te sirve. No sé si el vector al que tenes que calcularle las variaciones puede estar compuesto íntegramente por unos o ceros, pero lo tuve en cuenta. La idea básicamente es listar la cantidad de combinaciones que existen tomando cada elemento como un bit, es decir, como un código binario, siempre y cuando en el vector haya al menos un uno y un cero. La función "de2bi(n:m)", convierte un vector formado por los números del n al m () a binario y lo guarda en una matriz. Este es uno de los usos, tiene miles; acordate que siempre podés valerte del help de matlab tecleando, por ejemplo "help de2bi".

        Código:
        function [M] = MyVariations(v)
        %Función que calcula las variaciones con repetición a partir un vector binario de dimensión n.
        
        
            if (((v*v') ~= 0) && ((v*v') ~= length(v))) %Sí el vector ingresado tiene, al menos, un 1 y un 0, entro; sino, devuelvo el vector (se comprueba mediante el producto escalar).
                M=de2bi(0:(2^(length(v)))-1);% M es la matriz que contendrá los números en binario desde el 0 hasta (2^(n)-1),
            else                             %siendo "n" la dimensión del vector.
                M=v;
            end
        
        end
        Algunos ejemplos de llamada:

        Código:
        >> v=[1,0];
        >> M=MyVariations(v)
        
        
        M =
        
        
             0     0
             1     0
             0     1
             1     1
        
        
        >> v=[1,0,1,1];
        >> M=MyVariations(v)
        
        
        M =
        
        
             0     0     0     0
             1     0     0     0
             0     1     0     0
             1     1     0     0
             0     0     1     0
             1     0     1     0
             0     1     1     0
             1     1     1     0
             0     0     0     1
             1     0     0     1
             0     1     0     1
             1     1     0     1
             0     0     1     1
             1     0     1     1
             0     1     1     1
             1     1     1     1
        
        
        >> v=[0,0,0,0,0];
        >> M=MyVariations(v)
        
        
        M =
        
        
             0     0     0     0     0
        
        
        >> v=[1,1];
        >> M=MyVariations(v)
        
        
        M =
        
        
             1     1
        Un abrazo.-
        Última edición por Marce_; 21/07/2014, 08:21:41. Motivo: error en los comentarios

        Comentario


        • #5
          Re: Variaciones con repetición en Matlab

          Es exactamente esto lo que necesitaba!! Muchísimas gracias (:

          Comentario

          Contenido relacionado

          Colapsar

          Trabajando...
          X