Adding multiple interp1 in a loop

1 visualización (últimos 30 días)
ugur uresin
ugur uresin el 3 de Jul. de 2018
Comentada: ugur uresin el 5 de Jul. de 2018
Creating a loop for adding n number of interp1 functions:
sqrt(interp1(x1,y1,X) + interp1(x2,y2,X) +...+ interp1(xn,yn,X))
Where,
x: is the independent variable
y: is the dependent variable
X: is the range
The PROBLEM is that n is an variable, not a constant.
So, I need to do this in a LOOP.
  3 comentarios
ugur uresin
ugur uresin el 5 de Jul. de 2018
They're all double
For example:
x1 =
1.0e+04 *
0.0960
0.0984
0.1008
0.1032
.
.
.
Stephen23
Stephen23 el 5 de Jul. de 2018
ugur uresin's "Answer" moved here:
My code is below. This is a manual procedure. I would like to AUTOMATIZE and GENERALIZE this procedure due to the fact that number of variables is not constant -changes by data- (e.g. 8 here).
x1 = rpmmat(:, 1);
x2 = rpmmat(:, 2);
x3 = rpmmat(:, 3);
x4 = rpmmat(:, 4);
x5 = rpmmat(:, 5);
x6 = rpmmat(:, 6);
x7 = rpmmat(:, 7);
x8 = rpmmat(:, 8);
y1 = plotdata_ed2(:, 1);
y2 = plotdata_ed2(:, 2);
y3 = plotdata_ed2(:, 3);
y4 = plotdata_ed2(:, 4);
y5 = plotdata_ed2(:, 5);
y6 = plotdata_ed2(:, 6);
y7 = plotdata_ed2(:, 7);
y8 = plotdata_ed2(:, 8);
rss1 = sqrt(interp1(x1,y1,X)+interp1(x2,y2,X)+interp1(x3,y3,X)+interp1(x4,y4,X)+interp1(x5,y5,X)+interp1(x6,y6,X)+interp1(x7,y7,X)+interp1(x8,y8,X));
I tried many type of loop algorithms but they couldn't run.

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 5 de Jul. de 2018
Editada: Stephen23 el 5 de Jul. de 2018
This is easy one you avoid the counter-productive anti-pattern of creating numbered variables:
yn = 0;
for k = 1:8
xo = rpmmat(:,k);
yo = plotdata_ed2(:,k);
yn = yn + interp1(xo,yo,X);
end
rss = sqrt(yn);

Más respuestas (0)

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by