vectores una recorrer matriz matrices llenar for extraer elementos datos columna almacenar agregar matlab for-loop

una - recorrer un vector en matlab



Iterar una matriz vacĂ­a usando un bucle for (1)

El bucle for ejecuta en todas las columnas de su entrada. Como una matriz 0x1 tiene una columna (vacía), el bucle simplemente repasará eso. No se menciona ninguna excepción para matrices vacías, por lo que aquí t simplemente será la matriz vacía como se ve desde:

for t = ones(0, 1) %// Iterate over an empty 0x1 matrix size(t) % t is a 0x1 matrix end

¿Es un error? Probablemente no.
¿Tiene sentido? Bueno, creo que preferiría que el ciclo no se ejecute si la entrada está vacía, pero probablemente también tenga ventajas.

¡Al menos definitivamente es algo de lo que estar alerta!

Siempre asumí que iterar un vector vacío usando un bucle for era lo mismo que no tener el bucle en absoluto. Sin embargo, me encontré con este extraño comportamiento:

for t = [] %// Iterate an empty 0x0 matrix 1 end for t = ones(1, 0) %// Iterate an empty 1x0 matrix 2 end for t = ones(0, 1) %// Iterate an empty 0x1 matrix 3 end

El resultado es:

ans = 3

¿Tiene sentido, o es esto un error?