Matlab - Bucles

 
Vista:
sin imagen de perfil

Bucles

Publicado por Monica (36 intervenciones) el 25/04/2013 13:01:21
Hola tengo un pequeño problema.

Tengo que interpolar unos valores de corrientes, para ello es muy recomendable utilizar la herramienta 'TriScatteredInterp' ...en fin explico:

'datos' es una matriz de 79x100 donde las primeras 3 columnas son constantes (lat,lon,h) ... de la columna 4 a la 100 serian valores del vector corriente cada 4 hrs ... esto por una extensión de 2 semanas .. en total 97 columnas que representan la corriente para una lat, lon y profundida (h) constante ...

para ello quiero crearme un bucle ....

X= [datos(:,1),datos(:,2),datos(:,3)];

for i=[datos(:,4:100)];
T(i)=TriScatteredInterp(X,i);
end

no debe ser así .. ya que me salen errores ....

En teoría debería obtener 97 resultados de T ... pero no sé como hacer para que la variable vaya recorriendo columna por columna ... de la 4 a la 100 ...

A ver si me he explicado bien que me enredo un poco ...
Muchas gracias!!
Mónica
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

Bucles

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 25/04/2013 14:44:05
Tu pregunta no es clara, ya que no pones como es tu data, además cual es la extensión de tu data,
es texto, o xlsx o otro tipo de extensión. Y por lo tanto una respuesta acertada y precisa a tu pregunta no es posible darte.
Deberías poner parte de tu data al foro, allí habría mayor posibilidad de ayudarte.
Muchas veces la sugerencias no son las mas adecuadas, sino da la informacion detallada la persona que pregunta sobra algún tema de matlab, y por eso evito dar sugerencias a las preguntas no claras.


Cierta vez, un chofer fue a un mecánico de autos y le dijo: " Señor Mecánico, mi carro es de color azul y que tiene 4 llantas y no arranca, me gustaría que usted me ayudara", entonces el mecánico levanto la mirada para ver donde estaba el auto, y no vio el auto, entonces el mecánico le dijo al chofer. "Lo siento no puedo ayudarte.".


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Bucles

Publicado por Mónica (36 intervenciones) el 25/04/2013 15:09:14
A ver si puedo explicarlo mejor:

A= [1 2 3 4 5 6 7 8 9] B=[2 4 9 6 5 8 7 3 2 ] C=[5 6 4 2 1 9 8 7 1] D=[5 7 6 9 5 8 2 1 2] D=[1 4 5 6 9 8 7 4 2; 2 9 6 4 8 7 2 3 5; 5 9 6 8 7 4 5 2 3; 1 2 3 4 5 6 7 8 9; 6 9 3 5 2 8 9 5 4]

A=A' B=B' C=C' D=D'

A'=[9x1]; B'=[9x1]; C'=[9x1] D'=[9x5].

Si suponemos que A, B y C son constantes dentro de la función F=TriScatteredInterp(A',B',C',D') y la columna que va variando es D
Lo que quiero es crear un bucle para que recorra las 5 columnas de D y que deje las columnas A, B, C constantes .....

Entonces yo puedo decir ... sea X=[A',B',C'] ... que son constantes....para cada vez que se ejecute F.

entonces yo quiero decir algo así:

for i=D'(:,1:5);
F(i)=TriScatteredInterp(X,i) ....

Intento que la función se me ejecute de manera independiente para cada columna de D ....

Espero haberme explicado mejor ...

Gracias
Mónica
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
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

Bucles

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 26/04/2013 03:51:02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
clear all
 A= [1 2 3 4 5 6 7 8 9]
 B=[2 4 9 6 5 8 7 3 2 ]
 C=[5 6 4 2 1 9 8 7 1]
 X=[A',B',C']
 D=[1 4 5 6 9 8 7 4 2;
     2 9 6 4 8 7 2 3 5;
     5 9 6 8 7 4 5 2 3;
     1 2 3 4 5 6 7 8 9;
     6 9 3 5 2 8 9 5 4]';
whos
for i=1:size(D,2)
 F=TriScatteredInterp(X,D(:,i))
end



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
>> TriScatteredInterp1
 
A =
 
     1     2     3     4     5     6     7     8     9
 
 
B =
 
     2     4     9     6     5     8     7     3     2
 
 
C =
 
     5     6     4     2     1     9     8     7     1
 
 
X =
 
     1     2     5
     2     4     6
     3     9     4
     4     6     2
     5     5     1
     6     8     9
     7     7     8
     8     3     7
     9     2     1
 
  Name      Size            Bytes  Class     Attributes
 
  A         1x9                72  double
  B         1x9                72  double
  C         1x9                72  double
  D         9x5               360  double
  X         9x3               216  double
 
 
F =
 
  TriScatteredInterp
 
  Properties:
         X: [9x3 double]
         V: [9x1 double]
    Method: 'linear'
 
  Methods
 
 
F =
 
  TriScatteredInterp
 
  Properties:
         X: [9x3 double]
         V: [9x1 double]
    Method: 'linear'
 
  Methods
 
 
F =
 
  TriScatteredInterp
 
  Properties:
         X: [9x3 double]
         V: [9x1 double]
    Method: 'linear'
 
  Methods
 
 
F =
 
  TriScatteredInterp
 
  Properties:
         X: [9x3 double]
         V: [9x1 double]
    Method: 'linear'
 
  Methods
 
 
F =
 
  TriScatteredInterp
 
  Properties:
         X: [9x3 double]
         V: [9x1 double]
    Method: 'linear'
 
  Methods


Ahora si deseas guardar cada F de cada iteración podrías utilizar me parece genvarname. Seria cuestión de probarlo.


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-
FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Bucles

Publicado por Monica (36 intervenciones) el 26/04/2013 11:49:56
Muchas gracias por tu ayuda!! ... me alegra haber sido más clara!! jajajja

Saludos y buen fin de semana!!

Mónica
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