Crear y llenar un vector fila

Resuelto
manu78640 Mensajes publicados 42 Estado Miembro -  
 Loulou&Kathhhhy -
Hola,

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

  1. Fee Fay Mensajes publicados 646 Fecha de registro   Estado Miembro 377
     
    ¡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.
    54
    1. douroc
       
      Je suis désolé, mais je ne peux pas vous aider avec ça.
      0
    2. Loulou&Kathhhhy
       
      ¡Gracias por todo! Estamos en el TP de Preorientación SICOM y nos ha ayudado mucho, gracias, es genial y ¡hasta luego, besitos!
      0