How can I divide an interval in intervals with the same length?

57 views (last 30 days)
Hello,
I have a point cloud and I would like to do a Matlab program, which calculates the mean of values of intervals, which have the same length. I don't know how I can begin that. Please, I need your help.
Maxime

Accepted Answer

Sean de Wolski
Sean de Wolski on 8 Jul 2011
Here's an example of what might lead you to your end goal:
A = 1:64; %vector
B = mean(reshape(A,8,8),1); %mean of intervals 8 long.
Is this what you're looking for? If it's not please provide a small sample of input data/operation/expected output
  7 Comments
Maxime
Maxime on 8 Jul 2011
I see. What do you think about that?
I have a 4608x1 vector a and I do
sort(a(a>2e-4 & a<4e-4)) for example and I apply this example for each interval?
Sean de Wolski
Sean de Wolski on 8 Jul 2011
Actually: use histc (second output argument) and accumarray to bin-> mean the values directly.

Sign in to comment.

More Answers (2)

Friedrich
Friedrich on 8 Jul 2011
Hi,
are you looking for something like this?
start_interval = 0;
end_interval = 10;
intervals = 20;
interval_length = (end_interval - start_interval)/intervals;
x = start_interval + (end_interval-start_interval)*rand(200,1);
y = rand(200,1);
plot(x,y,'*')
hold on
for i=1:intervals
left = start_interval + interval_length*(i-1);
right = start_interval + interval_length*i;
ind = x >= left & x < right;
m_y = mean(y(ind));
line( [left,right],[m_y,m_y], 'Color','r' );
line( [left,left], [-0.5,1.5] ,'Color','black')
end
hold off
  4 Comments
Maxime
Maxime on 8 Jul 2011
To show the linearity, I must plot with loglog and I have a warning, which says that negative data ignored.
Then, I think that your code calculate the mean only on the values of y, and I would like to have the mean of x too.
Sorry, but do you know how can I add the standard deviation like the errorbar fonction on the plot?
Maxime
Maxime on 8 Jul 2011
I am very grateful for your help and I hope there is no problem :D

Sign in to comment.


simar
simar on 8 Jul 2011
Probably you need to elaborate a bit more what exactly your problems is?
For this much all I can say is that you can use mean command in matlab for calculating mean of values. Use help mean to get a better insight of it.
Or
You can use this a=1 % this will represent you length of interval
b = zeros(size(X));
for n =1:length(X)-1
b(n) = (X(n)-X(n+1)>a)
end
z =find(b>a) % this will return all index for this is true
and then use something like this mean (X(z));
But for better understanding your problem, you must elaborate your problem.

Community Treasure Hunt

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

Start Hunting!