Matlab - Incremento mediante un bucle

 
Vista:

Incremento mediante un bucle

Publicado por Patricia (8 intervenciones) el 28/02/2014 19:43:46
Hola, estoy haciendo unos calculos de regresión para general una curva espectral. El tipo de datos que tengo incluye una columna con la longitud de onda y otra con la absorbancia:

200 2.479548
201 2.463961
202 2.411377
203 2.36803
204 2.299087
205 2.226782
206 2.143653
207 2.061231
208 1.966193
209 1.876324
210 1.785384
211 1.696724
212 1.604722
213 1.517911
214 1.433491
215 1.350246
216 1.272153
217 1.196794
218 1.125223
219 1.057493
220 0.995423
221 0.938045
222 0.887021
223 0.840384
224 0.799002
225 0.763103
226 0.731112
227 0.703296
228 0.677009
229 0.65272
230 0.63005
231 0.609493
232 0.591237
233 0.574588
234 0.560023
235 0.547221
236 0.536611
237 0.528481
238 0.52166
239 0.515854
240 0.511352
241 0.507155
242 0.503763
243 0.500461
244 0.4974
245 0.49394
246 0.490708
247 0.487254
248 0.483624
249 0.479809
250 0.476233

Yo quiero hacer regresiones lineales entre con un incremento de 20 nm. Es decir que quiero hacer la regresión de 200 a 220, luego de 201 a 221, luego de 202 a 222 y así sucesivamente hasta 700 nm.
La primer columna
A=(200:700)';
La segunda columna son los datos importo mis datos:
B=csvread('absorbancia.csv',2,2);

long=A(1:20);% corto el rango de mi variable independiente A
absorbancias=B(1:20,:) % corto el rango de mi variable dependiente B
Ln=log(absorbancias); % le hago el logaritmo

for i:1:size(Ln,2)
SS200(i,:)=polyfit(long, Ln(:,i), 1);
end
%% con esto genero la regresion y me da un valor


long=A(2:21);% corto el rango de mi variable independiente A
absorbancias=B(2:21,:) % corto el rango de mi variable dependiente B
Ln=log(absorbancias); % le hago el logaritmo

for i:1:size(Ln,2)
SS201(i,:)=polyfit(long, Ln(:,i), 1);
end

Ahora quiero hacerlo corriendo sincronicamente 20 nm, necesito hacer unas 500 veces de 200 a 700nm, Habrá alguna manera más fácil de lograrlo?? Alguna idea?
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

Incremento mediante un bucle

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 01/03/2014 11:47:52
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
>> curva_espectral
 
SS200 =
 
   -0.0477   10.5438
 
 
SS201 =
 
   -0.0501   11.0592
 
 
SS202 =
 
   -0.0521   11.4826
 
 
SS203 =
 
   -0.0538   11.8408
 
 
SS204 =
 
   -0.0550   12.1037
 
 
SS205 =
 
   -0.0558   12.2839




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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
>> curva_espectral1
 
long =
 
   200
   201
   202
   203
   204
   205
   206
   207
   208
   209
   210
   211
   212
   213
   214
   215
   216
   217
   218
   219
   220
 
 
absorbancias =
 
    2.4795
    2.4640
    2.4114
    2.3680
    2.2991
    2.2268
    2.1437
    2.0612
    1.9662
    1.8763
    1.7854
    1.6967
    1.6047
    1.5179
    1.4335
    1.3502
    1.2722
    1.1968
    1.1252
    1.0575
    0.9954
 
 
SS200 =
 
   -0.0477   10.5438
 
 
long =
 
   201
   202
   203
   204
   205
   206
   207
   208
   209
   210
   211
   212
   213
   214
   215
   216
   217
   218
   219
   220
   221
 
 
absorbancias =
 
    2.4640
    2.4114
    2.3680
    2.2991
    2.2268
    2.1437
    2.0612
    1.9662
    1.8763
    1.7854
    1.6967
    1.6047
    1.5179
    1.4335
    1.3502
    1.2722
    1.1968
    1.1252
    1.0575
    0.9954
    0.9380
 
 
SS201 =
 
   -0.0501   11.0592
 
 
long =
 
   202
   203
   204
   205
   206
   207
   208
   209
   210
   211
   212
   213
   214
   215
   216
   217
   218
   219
   220
   221
   222
 
 
absorbancias =
 
    2.4114
    2.3680
    2.2991
    2.2268
    2.1437
    2.0612
    1.9662
    1.8763
    1.7854
    1.6967
    1.6047
    1.5179
    1.4335
    1.3502
    1.2722
    1.1968
    1.1252
    1.0575
    0.9954
    0.9380
    0.8870
 
 
SS202 =
 
   -0.0521   11.4826
 
 
long =
 
   203
   204
   205
   206
   207
   208
   209
   210
   211
   212
   213
   214
   215
   216
   217
   218
   219
   220
   221
   222
   223
 
 
absorbancias =
 
    2.3680
    2.2991
    2.2268
    2.1437
    2.0612
    1.9662
    1.8763
    1.7854
    1.6967
    1.6047
    1.5179
    1.4335
    1.3502
    1.2722
    1.1968
    1.1252
    1.0575
    0.9954
    0.9380
    0.8870
    0.8404
 
 
SS203 =
 
   -0.0538   11.8408

Algo asi?

¿el archivo absorbancia.csv?

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