• Sábado 12 de Julio de 2025, 13:18

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.


Mensajes - 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 / Re: multiprocesador - multicore - aprovechar micro
« en: Lunes 2 de Mayo de 2011, 22:51 »
hola allisap
según puedo entender en el link q me pasaste (con mi muy básico ingles) veo q ese plugin funciona para cuando uno tiene una placa de video con su propio micro. pero mi caso no es ese, solo tengo un multiprocesador AthlonX2 y el video esta integrado al mother. por lo tanto ese plugin no me funca. si bien mi athlon no es gran cosa, solo quisiera aprender a aprovechar los dos micros (no uno solo como veo q ocupa el matlab). es solo una cuestión de curiosidad, porq la portátil esta no es una maquina q uno pensaría para hacer cuentas (athlonX2 tk-55 de 1.8Mhz).

bueno, desde ya gracias por responder
saludos
chule

pd: otra vez pido disculpas si confundo micro con procesador o viceversa

3
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.

4
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

5
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!

6
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!

7
Matlab / Re: valor de maximo
« en: Jueves 5 de Noviembre de 2009, 20:35 »
encontre una manera de solucionarlo. se q no es la mas elegante y no me gusta mucho porq estoy calculando todo todo y despues de tener todo calculado busco el maximo. a mi me hubiera gustado encontrar la manera de deter el proceso de iteraciones una vez llegado al maximo. en este caso no es muy problematico porq solo son 250 iteraciones, pero si hubieran sido muchas mas seria problematico.

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

for j=5:245;
if G(j+1,1)>G(j,1)
max=j+1;
end
end

resultados=[a(max,1) tangfi(max,1) fi(max,1) aprima(max,1) f(max,1) F(max,1) G(max,1)]

el vector de resultados me identifica los elementos de las matrices q coinciden con el elemento q maximizo a G.
tu manera de escribir el codigo me parece q esta bastante mejor q la mia, (no conocia esa funcion b=find(G,Gmax)), asiq muchas gracias por el aporte!
sabes como deberia armar el codigo si no quiero q me calcule todos los puntos, solo q calcule hasta q encuentre el maximo? (ya se q es medio al pedo, puede pasar q el maximo sea uno de los ultimos valores, con lo cual estaria calculando casi todo otra vez) pero me ahorraria algunas cuentas si en vez de ser solo 250 iteraciones fueran 5000...no?
un abrazo y gracia otra vez

8
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]