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?