fix a center of gravity loop

imshow(matrix(:,:,1))
%identify axes
[x, y] = ginput(2);
% preallocate matrices
cog = zeros(size(matrix,3),1);
% the loop does not work and the error in the cog(i) line
% loop start
for i = 1:size(matrix,3)
I = matrix(:,:,i);
test = improfile(I,[x(1) x(2)],[y(1) y(2)]);
%the error comes from this line
cog(i) = sum((1:length(test)).*test)/sum(test);
% loop end
end
scog = (cog - min(cog)) / (max(cog) - min(cog));

1 comentario

Matt J
Matt J el 27 de Jul. de 2022
You need to demonstrate the code and show us the error messages.

 Respuesta aceptada

David Hill
David Hill el 27 de Jul. de 2022
cog(i) = sum((1:length(test)).*test')/sum(test); %need to transpose test' to match dimensions

1 comentario

BA
BA el 27 de Jul. de 2022
Editada: BA el 27 de Jul. de 2022
Fab. it works perfectly. I have another question: what is the equivalent of 'improfile' in octave? I mean to change the 'improfile' line to work in octave

Más respuestas (0)

La pregunta está cerrada.

Preguntada:

BA
el 27 de Jul. de 2022

Cerrada:

el 28 de Jul. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by