Matlab - Selector de elementos para realizar calculos de una matriz

 
Vista:
sin imagen de perfil

Selector de elementos para realizar calculos de una matriz

Publicado por Diegox (20 intervenciones) el 26/10/2011 00:22:29
Bueno aca traigo otra pregunta medio complicada pero voy a tratar de hacerla lo mejor explicito posible tengo una matriz de busqueda por asi llamarla seria esta:

I J K NI NJ NK EI EJ EK
3 1 0 3762,796 3640,16 0 1043,335 2321,21 0
4 1 0 2478,36 3640,16 0 1258,25 2321,21 0
3 2 0 3762,796 3002,38 0 1043,335 2224,38 0
4 2 0 2478,36 3002,38 0 1258,25 2224,38 0

Como pueden ver trabajo con coordenadas bajo los id I J K tenemos los norte y los estes de cada punto acomodados de igual forma que sus id...

bien con esta info ocupo llegar a lo siguiente:

I J k N1 E1 N2 E2
3 1 0 -0,0955 0,9954 0,0000 0,0000
4 1 0 0,7378 0,6750 0,0000 0,0000
3 2 0 0,0000 0,0000 -0,5413 0,8408
4 2 0 0,0000 0,0000 0,4768 0,8790

Volvi a poner los id para que se entienda un poco mejor y el nombre de cada columna para no perder la idea de lo que se hace. La matriz expuesta anteriormente es la meta de lo que quiero hacer tomando en cuenta los datos de la matriz de busqueda.

Cada valor tiene una funcion para sacarlo basicamente son 4 funciones Ni, Nj, Ei, Ej o si no solo pone 0.
Para este caso los puntos que se evaluan son el 1 y 2 si estos puntos no aparecen en los id I J K se pone un 0.

Estas serian las funciones:

Ni: -1*((njdis(it,1)-(nidis(it,1)))/sqrt((njdis(it,1)-nidis(it,1))^2+(ejdis(it,1)-eidis(it,1))^2))
Nj: ((njdis(it,1)-(nidis(it,1)))/sqrt((njdis(it,1)-nidis(it,1))^2+(ejdis(it,1)-eidis(it,1))^2))
Ei:-1*((ejdis(it,1)-(eidis(it,1)))/sqrt((njdis(it,1)-nidis(it,1))^2+(ejdis(it,1)-eidis(it,1))^2))
Ej: ((ejdis(it,1)-(eidis(it,1)))/sqrt((njdis(it,1)-nidis(it,1))^2+(ejdis(it,1)-eidis(it,1))^2))
it*: es un contador que hice para saber q numero esta evaluando de la matriz pero no funciona mas adelante mostrare el codigo de lo poco que he logrado.
Para este caso it es: it=1:ndis ndis=4 la idea es hacer it= (1 2 3 4) como si fuera un vector.

Donde nidis, njdis, eidis, ejdis son simplemente la matriz fragmentada por columnas
Voy a ponerlas para entender mejor:
nidis=
3762.80
2478.36
3762.80
2478.36
njdis=
3640.16
3640.16
3002.38
3002.38
eidis=
1043.34
1258.25
1043.34
1258.25
ejdis=
2321.21
2321.21
2224.38
2224.38

ahora lo que quiero poner para lograr de que me entiendan es cada funcion en la matriz final:

I J k N1 E1 N2 E2
3 1 0 nj ej 0 0
4 1 0 nj ej 0 0
3 2 0 0 0 nj ej
4 2 0 0 0 nj ej

Para este caso en especial solo usa funciones nj o ej pero evidentemente tiene q funcionar con cualquier tipo de informacion.
si me lograron entender hasta aca voy a poner el codigo que he logrado pero aun asi no me arroja resultados muy logicos o mas bien me los da de una extraña forma deben ser los bucles:

for a=1:ptosnue*2
for it=1:ndis
if it==idis(it,1)
matadis(it,a)=-1*((njdis(it,1)-(nidis(it,1)))/sqrt((njdis(it,1)-nidis(it,1))^2+(ejdis(it,1)-eidis(it,1))^2))
elseif it==jdis(it,1)
matadis(it,a)=((njdis(it,1)-(nidis(it,1)))/sqrt((njdis(it,1)-nidis(it,1))^2+(ejdis(it,1)-eidis(it,1))^2))
else
matadis(it,a)=0
end
end
end

no voy a poner los resultador pero prueben para que vean lo que hace este codigo.

ptosnue: para este caso son 2
ndis: como lo dije antes son 4
matadis: es la funcion final osea esta:

-0,0955 0,9954 0,0000 0,0000
0,7378 0,6750 0,0000 0,0000
0,0000 0,0000 -0,5413 0,8408
0,0000 0,0000 0,4768 0,8790

para terminar el idis y jdis son los id separados por columnas de los i j k:
idis=
3.00
4.00
3.00
4.00
jdis=
1.00
1.00
2.00
2.00
el id K no lo uso aca por que no tiene relacion con los coeficientes de distancias, creo q mucha gente me debe entender de este tema ya que tiene relacion con fisica, matrices en 3D (programacion) y topografia ya que esa es mi area de estudio.

Bueno espero q me hallan entendido la idea y de verdad muchas gracias el q me pueda ayudar!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Selector de elementos para realizar calculos de una matriz

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/10/2011 14:27:16
Hola Diegox
Que te entiendan tu pregunta es dificil, sin que, TU estes explicando detalle a detalle.
Mi sugerencia es. Busca una persona de conosca de matlab por tu localidad. Seguro de cobrara por sus servicios, pero es parte de su trabajo.

saludos.
JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR MATLAB
[email protected]
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
sin imagen de perfil

Selector de elementos para realizar calculos de una matriz

Publicado por Diegox (20 intervenciones) el 26/10/2011 17:38:59
mmm voy a ver si puedo mejorar la explicación, pero también ando en busca de eso alguien q me asesore cerca de mi localidad... es un poco complicado pero no imposible ademas igual estoy tratando por mis propios medios de hacerlo! yo se q se puede solo es un error de interpretación en el codigo! pero gracias maestro!
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
sin imagen de perfil

Selector de elementos para realizar calculos de una matriz

Publicado por Diegox (20 intervenciones) el 04/11/2011 22:03:20
mas o menos lo he logrado solucionar pero tuve que ver el algoritmo general de lo que estoy haciendo desde otro punto de vista con un poco de ayuda de otro experto en mi campo de estudio pude lograr algo aun esta en pruebas pero creo que casi lo tengo. pero de todas formas gracias ya me suscribe a tu blog! estamos hablando!
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