¿Qué enfoques utilizas para vectorizar funciones en Matlab?

find() y la indexación lógica son tus amigos. Del mismo modo, evite agregar a los vectores y, en su lugar, preasigne memoria para sus resultados y elimínela más adelante si es necesario.

Mi algoritmo básico para “mejorar el código lento de las personas” es buscar bucles for con sentencias if anidadas dentro de ellas, especialmente si se agregan a un vector (aunque el resaltado de sintaxis de MatLab ya les advertirá sobre eso). Un ejemplo estúpido podría ser un ciclo de 1 a 1000000 que pone números pares en un vector.

  iguala = [];
 para i = 1: 1E6
   si rem (i, 2) == 0% si es incluso ...
     iguala = [iguala, i];
   fin
 fin

¡Este código será SLOOOOOWWW!

  pares = 1: 1E6;  % Preasignar espacio excesivo para el resultado.
 pares [rem (pares, 2) ~ = 0] = [];  % Convierta todos los valores no pares en vectores vacíos, eliminándolos del vector de resultados.

¡Este código será súper rápido!

Cuando no quiero reescribir mis funciones o tener que pensar demasiado en la vectorización, uso la función arrayfun. Digamos que ha escrito una función que solo toma argumentos escalares. Con arrayfun puede aplicar su función a una matriz completa. Hay una función análoga para las matrices de células, creo que se llama cellfun.

More Interesting

¿Cuál es la diferencia entre alineación y deformación en visión artificial?

Soy Editor de Adquisiciones y para obtener conocimiento y autoaprendizaje de análisis de datos y habilidades de aprendizaje automático. ¿Alguien podría ayudarme a trazar un plan?

¿Cuál es la regla de entrenamiento para redes de perceptrón de capa única con umbral?

¿Qué son los datos estructurados en el contexto del aprendizaje automático?

¿Existen algoritmos que hacen lo contrario de la detección de anomalías, por ejemplo, señalan ocurrencias regulares en datos ruidosos?

¿Cuál es la relación entre el análisis de sentimientos, el procesamiento del lenguaje natural y el aprendizaje automático?

¿Crees que la tecnología 'block chain' es la próxima gran novedad en informática?

¿Qué conocimiento previo es necesario para el aprendizaje automático?

Como todos están aprendiendo el aprendizaje automático y el aprendizaje profundo ahora, ¿debería adoptar un enfoque diferente para centrarme en un área específica, como la programación de gráficos o una más general, como el desarrollo de backend?

Cómo demostrar que minimizar la suma residual de cuadrados es equivalente a maximizar la función de log-verosimilitud

¿Cuál es el entorno libre de distribución en la teoría del aprendizaje estadístico?

¿De qué maneras incorpora Snapchat el aprendizaje automático?

¿Dónde usa Quora el aprendizaje automático?

¿Debo aprender a desarrollar backend si quiero ser ingeniero de aprendizaje automático?

¿Cuál es el mejor instituto en Bangalore para aprendizaje automático, inteligencia artificial y aprendizaje profundo (necesita práctica)?