How do I apply distance formula for 3D coordinate points for all elements in a cell array?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
lil brain
el 13 de Feb. de 2022
Comentada: lil brain
el 13 de Feb. de 2022
Hi,
I have a cell array where each cell contains a matrix of 3D coordinates (xyz) for three positions (9 columns in total). These are:
head = columns 1-3
left hand = columns 4-6
right hand = columns 7-9
I would like to find the distances between the positions 'head' and 'left hand' for each cell for each element in the columns. I have the following code:
distances_head_lefthand = sqrt(((participant_positions{1,1}(:,4)-participant_positions{1,1}(:,1)).^2)+((participant_positions{1,1}(:,5)-participant_positions{1,1}(:,2)).^2)+((participant_positions{1,1}(:,6)-participant_positions{1,1}(:,3)).^2));
This code works for one cell in a cell array.
How do I need to write this code if I want to apply it to every cell in the cell array and save the output in a new cell array called 'distances_head_lefthand'?
Thank you!
0 comentarios
Respuesta aceptada
DGM
el 13 de Feb. de 2022
How about something like this?
S = load('participants_head_lefthand_righthand_positions.mat');
head_lh_rh_pos = S.participant_head_lefthand_righthand_positions; % good grief
f = @(x) sqrt(((x(:,4)-x(:,1)).^2) ...
+ ((x(:,5)-x(:,2)).^2) ...
+ ((x(:,6)-x(:,3)).^2));
distances_head_lefthand = cellfun(f,head_lh_rh_pos,'uniform',false)
Más respuestas (0)
Ver también
Categorías
Más información sobre Operators and Elementary Operations 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!