vectores valor teclado posicion por matriz llenar ingresar extraer elementos datos almacenar agregar matlab iteration

valor - ¿Cómo iterar sobre un vector de columna en Matlab?



posicion de un valor en un vector matlab (4)

Posible duplicado:
¿Cómo puedo iterar a través de cada elemento en una matriz n-dimensional en MATLAB?

Tengo una list vectores de columnas que me gustaría repetir de esta manera:

for elm in list //do something with elm

¿Cómo?


En Matlab, puede iterar sobre los elementos en la lista directamente. Esto puede ser útil si no necesita saber en qué elemento está trabajando actualmente.

Por lo tanto, puedes escribir

for elm = list %# do something with the element end

Tenga en cuenta que Matlab itera a través de las columnas de la list , por lo que si list es un vector nx1, es posible que desee transponerlo.


Si solo desea aplicar una función a cada elemento y colocar los resultados en una matriz de salida, puede usar arrayfun .

Como otros han señalado, para la mayoría de las operaciones, es mejor evitar los bucles en MATLAB y vectorizar su código en su lugar .


con muchas funciones en matlab, no necesita iterar en absoluto.

por ejemplo, para multiplicar por su posición en la lista:

m = [1:numel(list)]''; elm = list.*m;

los algoritmos vectorizados en matlab son en general mucho más rápidos.


for i=1:length(list) elm = list(i); //do something with elm.