Matlab - Almacenar vectores en un bucle for

   
Vista:

Almacenar vectores en un bucle for

Publicado por Holyo (30 intervenciones) el 03/03/2009 11:06:45
Hola, estoy haciendo un pequeño programa con el matlab. El programa consiste en crear una matriz.

Este es un problema "repititivo", es decir, tengo que resolver varias ecuaciones para cada sección, es decir, para la primera sección tengo que "a" es 2, que "b" es 4, para la sección 2 es .....así sucesivamente hasta la sección 3. Para hacer eso, pongo las ecuaciones a resolver dentro de un bucle for y le digo que la sección vaya desde uno hasta 3.

El problema consiste, en que me gustaría formar una matriz, con cada vector fila (a,b) que tengo. Si cuando sección=1, tengo un vector [a,b], para la sección=2, tengo otro vector....¿cómo puedo hacer para almacenarlos, y poder formar una matriz?

for i=1:3
a=3*x-y
b= 2*y+x
A=[a b]
end
display(A)

De esta forma, sólo me enseña el último valor que tiene de A

Muchas gracias por vuestra ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder

RE:Almacenar vectores en un bucle for

Publicado por Angel (75 intervenciones) el 03/03/2009 14:16:16
%Solo te hace falta una pequeña variación
%Primero inicializamos tanto a como b
a=[];
b=[];

for i=1:3
a=[a 3*x-y ];
b= [b 2*y+x ];
end
A=[a' b']

display(A)

Simplemente se concatenan los datos qeu vs consiguiendo nuevos.
de todos modos ¿que valores tienen x e y?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Almacenar vectores en un bucle for

Publicado por holyo (30 intervenciones) el 03/03/2009 20:04:50
Hola, muchas gracias por la ayuda, si que me funciona. Ahora te quería preguntar otra duda, es una tontería pero que llevo todo el tiempo buscando la respuesta en la ayuda de matlab y no sé cómo se hace. Tengo una gráfica, y quiero que el eje x me haga una malla desde cero hasta diez pero de uno en uno. Sé que tengo que utilizar el comando grid, pero como hago?

Muchas graicas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Almacenar vectores en un bucle for

Publicado por Angel (75 intervenciones) el 04/03/2009 14:06:49
Buena pregunta, intento mirarlo pero siempre te queda otra opción y es crear tu tu propia rejilla, te pongo un ejemplo
inferior=-10;
superiro=10;
y=inferior:superior;
x=ones(length(y));

for n=0:10
plot(y,n*x,'b--');
end

de este modo dibujarías 11 barras verticales(si no me he equivocado al escribir el plot) entre 0 y 10 equiespaciadas una unidad, es más enrevesado pero viable, en este caso al poner -- serían líneas discontinuas pero si ves la ayuda del plot veras que puedes poner puntos u otra opciónes.
Miraré si con el grid se puede
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Almacenar vectores en un bucle for

Publicado por Darwin (3 intervenciones) el 04/06/2013 00:47:09
Buenas necesito ayuda en un código de programación en Matlab, estoy haciendo un archivo m, con un bucle for para ver la variacion de voltajes de toque y paso, con valores diferentes de la variable hs y Rs previamente declaradas.

El problema es el resultado debe ser una matriz que contiene todos los valores de los "subresultados" de cada interacción del bucle for, y no puedo hacerlo, he tratado con un ejemplo que he investigado

for m = 1: c
for n = 1: c
un (m, n) = 1 / (m + n * 5);
end
end
un

pero es necesario que los valores que m y n deben ser positivos y enteros, encambio yo tengo valores decimales



Para aclarar todo este es mi código de programación

clc

Ra=64;
Ts=0.2;
i=[1300,2000,3000,5000];
j=[0.1:0.1:0.4];

for Rs=i
for hs=j

Cs = 1-((0.09*(1-(Ra/Rs)))/(2*hs+0.09));
Vtouch50=(1000+(1.5*(Cs)*Rs))*(0.116/sqrt(Ts))
Vstep50 =(1000+(6*(Cs)*Rs)) *(0.116/sqrt(Ts));
Vtouch70=(1000+(1.5*(Cs)*Rs))*(0.157/sqrt(Ts));
Vstep70 =(1000+(6*(Cs)*Rs)) *(0.157/sqrt(Ts));
end
end




En el programa falta la linea de programación para hacer aparecer el resultado en una matriz

por ejemplo, resultado = [Vtouch50; Vstep50; Vtouch70; Vstep70], cada voltaje en una columna diferente

si existe otra solución que sepan
espero que ustedes me ayuden
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Almacenar vectores en un bucle for

Publicado por Manuel mhiguerasm@gmail.com (4 intervenciones) el 20/11/2013 19:54:28
Hola amigos, soy nuevo en matlab y tengo el siguiente problema: Necesito generar un bucle que me permita almacenar los datos en una matriz dentro del mismo ciclo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Almacenar vectores en un bucle for

Publicado por arturo (1 intervención) el 27/03/2014 18:49:45
for i=1:6;
a(i)=[4*i];


end

te almacena los datos de a en un vector saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Almacenar vectores en un bucle for

Publicado por jhomba (3 intervenciones) el 27/03/2014 02:03:17
ola amigo tu sabes como crear matrices con los bucles for y whlile
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Almacenar vectores en un bucle for

Publicado por jhomba (3 intervenciones) el 28/03/2014 03:18:33
ola alguien me podría ayudar con estos problemas
Realizar un programa que permita ingresar una matriz, y posteriormente imprimir la transpuesta de dicha matriz.
a. Utilice ciclo for – end, para que el programa se ejecute 3 veces.

b. Utilice ciclo while – end, para que el programa se ejecute 3 veces.
gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar