Split a matrix into separate matrices and find centroid of each smaller matrix

I want to split a Nx2 matrix into k number of matrices, find the centroid of each matrix and then put the centroids into another matrix.
For example for A = 50x2 matrix and k = 10
The 10 smaller matrices will be 5x2 each.
The matrix containing the centroids of 10 matrices will be 10x2
[ Centroid of a Nx2 matix is a point equidistant from all points in the matrix when plotted. Each of the matrix rows are x&y axis values. For a collection of points x1,x2,x3,.....xn & y1,y2,y3,.....yn.
Centroid(x',y')
x' = (x1+x2+x3+......+xn) /n
y' = (y1+y2+y3+......+yn) /n ]
How to constuct this code?

2 Comments

what have you tried? and what do you mean by centroid?
If youre finding a centroid for 10 matrices, how is the collection of centroids a 10x2?
Centroid is a point equidistant from all points in the matrix when plotted. Each of the rows are x&y axis values. For a collection of points x1,x2,x3,.....xn & y1,y2,y3,.....yn.
Centroid(x',y')
x' = (x1+x2+x3+......+xn) /n
y' = (y1+y2+y3+......+yn) /n

Sign in to comment.

 Accepted Answer

A = rand(50,2) ;
k = 10 ;
[r,c] = size(A);
nlay = r/k ;
out = permute(reshape(A',[c,r/nlay,nlay]),[2,1,3]);
% Get mean
M = squeeze(mean(out))'

3 Comments

The code of splitting the matix is absolutely correct. Thank you for that.
But the centroid is not what I wanted. This code refers to the mean of the matrix.
I have edited my question to explain about the centroid of a matrix.
What is difference between:
x' = (x1+x2+x3+......+xn) /n
y' = (y1+y2+y3+......+yn) /n
and mean?
sorry.....its my mistake.... I used a incorret matrix to test the code. I am new at using Matlab.
Its working correctly. Thank you very much.

Sign in to comment.

More Answers (0)

Asked:

on 16 May 2019

Edited:

on 17 May 2019

Community Treasure Hunt

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

Start Hunting!