• Martes 21 de Mayo de 2024, 09:08

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - yochule

Páginas: [1]
1
Matlab / convertir character a un vector
« en: Jueves 5 de Mayo de 2011, 15:22 »
hola gente, acá esta mi pregunta: quiero generar unos números binarios y tomar sus componentes para operar como si fueran vectores. o sea, uso el comando t=dec2bin(0:3) q me genera un char 't' donde están los números 0 a 3 en formato binario así:

00
01
10
11

pero no lo puedo usar como vectores (necesito operar con eso), por ejemplo si hago:
t(2,:)*1 me responde
ans
  48 49

donde t(2,:) es 01

yo quisiera tener una matriz de 4 filas por 2 columnas con la cual poder operar. alguien sabe como?

2
Matlab / multiprocesador - multicore - aprovechar micro
« en: Viernes 15 de Abril de 2011, 18:00 »
hola gente, me preguntaba si se puede aprovechar todos los micros de mi procesador. (ja, en realidad son dos). estoy haciendo algunas rutinas de calculo q me llevan bastante tiempo y quisiera acortar ese tiempito.
tengo una portatil con un athlonX2 64 corriendo en gnu-linux ubuntu, y mi versión de matlab es la 7.7.0.471(R2008b). veo q cuando lo mando a calcular solo utiliza uno de los núcleos y quisiera poder utilizar los dos.
bueno, ojala se pueda y q el q lo haya hecho ya comparta como.
saludos

pd: perdón si he confundido procesador con micro o viceversa, se q no es lo mismo pero no se q cosa es q cosa.

3
Matlab / ampliar vector - repetir componentes
« en: Domingo 1 de Agosto de 2010, 15:31 »
hola gentesss... tengo una duda q no logro resolver, he consultado todas las ayudas pero siempre me muestran la operación inversa de tomar parte de una matriz para construir un vector y yo busco algo asi como la operación inversa a eso.. explico:
digamos q tengo un vector a=1:1:5 q es:
a= 1 2 3 4 5
bien, ahora lo q yo quiero hacer es q se genere otro vector aa q tenga los mismos componentes de a pero repetidos dos veces, así:
aa= 1 2 3 4 5 1 2 3 4 5
esta muy claro q puedo definir aa=[a a], pero eso no me sirve porq lo q acá expongo con la repetición dos veces del mismo vector a, en realidad lo voy a implementar con muchas mas repeticiones, digamos q no quiero definir aa=[a a a a ... a] 2500 veces, se entiende?

otra pregunta q esta relacionada con la anterior. supongan q tengo definido ese vector a= 1 2 3 4 5. ahora lo q quiero definir es otro vector bb q tenga repetido dos veces el primero, dos veces el segundo y asi..:
bb=1 1 2 2 3 3 4 4 5 5
también es claro q puedo definir bb=a(1) a(1) a(2) a(2) a(3) a(3) a(4) a(4) a(5) a(5) sin embargo resulta bastante mas tedioso q como definí aa. ahora si quisiera hacer bb, pero con 1000 valores??!!

pd: perdón por el título, no sé como se llama este proceso q quedó planteado acá...
bueno gente, dejo un abrazo

4
Matlab / guardar matrices dentro de un for-end
« en: Martes 17 de Noviembre de 2009, 02:12 »
hola chicos, abro este hilo viejo porq estoy tratando de hacer algo parecido.
tengo varios bucles uno dentro del otro. el de afuera varia de (e) 1:3 y los dos de adentro (i,j) 1:2. por cada vez q se completa el bucle de afuera (e) se me forma una matriz de 8x8. por lo tanto voy a terminar teniendo 3 matrices de 8x8.
como hago para q me guarde esas tres matices? la parte del codigo q trata esto es esta:

k0=zeros(8,8);
pg=[1 1.2 2.2 1.8 ; -0.1 -0.5 0.0  -0.3];
r=[00 0.1]; s=[-2.5 -3.1];
for e=1:3
for i=1:2
for j=1:2
dh1r=1/4*(1+s(j)); dh1s=1/4*(1+r(i));
dh2r=-1/4*(1+s(j)); dh2s=1/4*(1-r(i));
dh3r=-1/4*(1-s(j)); dh3s=-1/4*(1-r(i));
dh4r=1/4*(1-s(j)); dh4s=-1/4*(1+r(i));
dh=[dh1r dh2r dh3r dh4r ; dh1s dh2s dh3s dh4s];
jacov=dh*pg';
invj=inv(jacov);

b1=[invj(1,1) invj(1,2)     0            0;
            0             0         invj(2,1) invj(2,2);
       invj(2,1) invj(2,2) invj(1,1) invj(1,2)];
b2=[dh1r    0    dh2r    0    dh3r    0    dh4r    0;
      dh1s   0   dh2s     0   dh3s    0   dh4s     0;
         0    dh1r   0     dh2r   0     dh3r    0    dh4r;
         0    dh1s   0    dh2s   0    dh3s    0    dh4s];
b=b1*b2;
end
end
k(e)=k0+b'*b*det(jacov)
end

la idea es terminar con 3 matrices k(e) q son de 8x8, pero no logro encontrar la manera de hacerlo.
alguien sabe como?
saludos!

5
Matlab / bucle, cadena, reescribir...
« en: Viernes 6 de Noviembre de 2009, 16:54 »
hola gente, no se como se identifica lo que quiero hacer, asiq no conozco el termino exacto que deberia usar.
el valor de la variable ro, eta, r, vr y fi ya estan determinados anteriormente y no dependen de los valores posteriores

1        cl=1;           % valor inicial de cl para poder empezar la iteracion
2        cd=0.001;        % valor inicial de cd para poder empezar
3        c=8*pi*r*cl;
4        Re=vr*c*ro/eta;
5        for i=1:20
6        alfa(i,1)=i-5;
7           cl(i,1)=9.91779e-08*alfa(i,1)-1.56464e-06;
8           cd(i,1)=4.47348e-03*cl(i,1)^2-1.22549e-02*cl(i,1)+1.37882e-02;
9           ct(i,1)=cl(i,1)*sin(fi)-cd(i,1)*cos(fi);
10       end
11       ctmax=max(ct);
12       b=find(ct==ctmax);
13       cl=cl(b)


como pueden ver en la linea 1, empece con un valor de cl=1, solo a efectos de poder calcular 'c' y Re. yo no puse por ahora, como van a variar las relaciones de cl-alfa y cd-alfa según el valor de Re pero ya lo voy a hacer. el asunto es q una vez q calculo el cl (q es el q maximiza ct, el de la linea 13) deberia volver arriba (linea 1) y modifiacar el valor inicial de cl (con el nuevo valor de cl obtenido en la linea 13). como puedo hacer para q el valor de cl de la linea 1 este en funcion del q obtengo en la linea 13?
PD: si se fijan, el cl de la linea 13 no depende de nada de lo de arriba (solo de alfa), pero esto es porq no esta completo el codigo, deberia haber distintas curvas de cl-alfa y cd-alfa segun el valor q tenga Re, q esta en funcion de 'cl' a traves de 'c'
bueno, alguien sabe como solucionar esto?
gracias muchas!

6
Matlab / valor de maximo
« en: Miércoles 4 de Noviembre de 2009, 15:19 »
primero perdón por el titulo, no se como describir mejor la duda.
es así: tengo q encontrar, dentro de un proceso iterativo, el valor maximo de G, q es funcion de a. ok, eso lo puedo hacer. sin embargo después tengo q usar ese valor de 'a' q hizo máximo G para seguir otro loop. como hago para identificar o apartar ese valor de la variable 'a' q me hizo maximo a G?

for a=0.002:0.002:0.5;
omega=rpm*pi/30;
tangfi=(-1+sqrt(1+4*(v1/(omega*r))^2*a*(1-a)))/(2*a*v1/(omega*r));
fi=atan(tangfi);
aprima=v1*(1-a)/(omega*r*tangfi)+1;
f=N*(R-r)/(2*R*sin(fi));
F=2/pi*acos(exp(-f));
G=F*(1-a)*aprima

yo tomo 'a' como variable y la hago ir creciendo desde 0.002 hasta 0.5. de todas las varibles q se definen despues de 'a' (tangfi, fi, aprima, etc) tengo q quedarme con las q hacen a G maximo. como hago eso? despues de encontrar eso tengo q usar todas esas variables para otros calculos, por lo tanto no me interesa el valor maximo de G, sino los valores de 'a', tangfi, fi, etc.. q hicieron maximo a G.
gracias anticipadas!

Páginas: [1]