create a 3D smoothing with csaps (or similar)

6 visualizaciones (últimos 30 días)
Alberto Acri
Alberto Acri el 7 de Jun. de 2024
Comentada: Mathieu NOE el 10 de Jun. de 2024
To get a better set of nodes arranged in space as a ‘curve’, how can I improve this code? Could you suggest?
load curve_1
cc = curve_1; %or curve_2
x = cc(:,1);
y = cc(:,2);
z_min = min(cc(:,3));
z_max = max(cc(:,3));
z = z_min:0.1:z_max;
z = z';
% code
[pp,p] = csaps(z,[x;y]);
val = fnval(pp,z);
figure
plot3(x,y,z);
hold on
plot3(val(1,:),val(2,:),z,'r-')
grid on

Respuesta aceptada

Mathieu NOE
Mathieu NOE el 7 de Jun. de 2024
hello again !
as your post title is about smoothing, this is what I propose , based on the fex submission :
I attached the function in my answer if it makes your life simpler
now, maybe we should also create some intermediate points with interpolation (will be done just after this first answer)
so the starter :
load curve_1
cc = curve_1; %or curve_2
% load curve_2
% cc = curve_2; %or curve_2
x = cc(:,1);
y = cc(:,2);
z = cc(:,3);
% smoothing (if needed)
[zz,s,exitflag] = smoothn({x,y,z},1);
xn = zz{1};
yn = zz{2};
zn = zz{3};
plot3(x,y,z,'*');
hold on
plot3(xn,yn,zn);
  4 comentarios
Alberto Acri
Alberto Acri el 7 de Jun. de 2024
Thank you @Mathieu NOE! You always surprise me!
Mathieu NOE
Mathieu NOE el 10 de Jun. de 2024
My pleasure , and thanks again for accepting my answer
you can also reward other contributors by voting

Iniciar sesión para comentar.

Más respuestas (1)

Matt J
Matt J el 7 de Jun. de 2024
Editada: Matt J el 7 de Jun. de 2024
load curve_1
cc = curve_1; %or curve_2
x = cc(:,1);
y = cc(:,2);
z = cc(:,3);
t=linspace(0,1,height(cc));
tu=linspace(0,1,5*height(cc));
% code
[pp,p] = csaps(t,cc',0.995);
val = fnval(pp,tu);
figure
plot3(x,y,z,'o');
hold on
plot3(val(1,:),val(2,:),val(3,:),'r-')
grid on
  1 comentario
Alberto Acri
Alberto Acri el 7 de Jun. de 2024
Thank you! I accepted Mathieu's answer because it gave me more solutions. However, your answer is well accepted and I cannot accept both!

Iniciar sesión para comentar.

Categorías

Más información sobre Spline Postprocessing en Help Center y File Exchange.

Productos


Versión

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by