Crear y llenar un vector fila
Resuelto
manu78640
Mensajes publicados
42
Estado
Miembro
-
Loulou&Kathhhhy -
Loulou&Kathhhhy -
Hola,
Deseo crear y llenar un vector fila de 20 valores, ¿cómo hacerlo?
Atentamente,
Manu78640
Deseo crear y llenar un vector fila de 20 valores, ¿cómo hacerlo?
Atentamente,
Manu78640
Configuración: Windows XP Internet Explorer 7.0
1 respuesta
-
¡Buenas noches, amigo!
Con Matlab, las declaraciones no son útiles y es más rápido trabajar en vectorial. Para ello, la mayoría de las funciones de Matlab se utilizan de forma vectorial (cos, sin, log, ...) y los operadores * / ^ etc... se pueden utilizar elemento a elemento añadiendo un . delante de los operadores como esto: .* ./ .^
Si no tienes otra opción que llenar un vector en un bucle, aunque no sea necesario declarar su tamaño antes de entrar en el bucle, sigue siendo más rápido hacerlo, de lo contrario Matlab se verá obligado a actualizar el espacio de memoria reservado para el vector en cada iteración del bucle en cuestión; en este caso, una solución posible es definir inicialmente un vector del tamaño deseado lleno de ceros, por ejemplo.
Aquí tienes algunos ejemplos de algunos comandos simples.v=zeros(1,20); % Define el vector fila de longitud 20 y lleno de 0 v=ones(1,20); % Define el vector fila de longitud 20 y lleno de 1 v=(1:20); % Define el vector fila [1,2,3,...,18,19,20] v=(4:3:61); % Define el vector fila [4,7,10,...,55,58,61] v=(32:-1:13); % Define el vector fila [32,31,30,...,15,14,13] v=(55:-2:17); % Define el vector fila [55,53,51,...,21,19,17] v=linspace(0,1,20); % Define la subdivisión regular de [0,1] de longitud 20
Y hay muchas más posibilidades que descubrirás...
Por último, aquí tienes algunas explicaciones adicionales sobre estas historias de bucle y vectorización. Supongamos que quieres definir el vector v=[exp(1²), exp(1/2²),exp(1/3²),...,exp(1/39²),exp(1/40²)], el método más lento y feo sería el siguiente (realmente un horror en Matlab):for k=1:20 v(k)=exp(1/k^2); end
El siguiente método, aunque un poco mejor, sigue siendo un horror como el anterior:v=zeros(1,20) % El tamaño es conocido antes del bucle, es mejor for k=1:20 v(k)=exp(1/k^2); end
Y por último, el método a utilizar es este:v=exp(1./(1:20).^2);
¡Te deseo una muy buena noche!
--
Todos los animales gritaban muy alto
Que era el sapo más hermoso, cuando tocaba el banjo.