Azzera filtri
Azzera filtri

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

32 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Sean de Wolski
Sean de Wolski il 8 Lug 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 Commenti
Maxime
Maxime il 8 Lug 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 il 8 Lug 2011
Actually: use histc (second output argument) and accumarray to bin-> mean the values directly.

Accedi per commentare.

Più risposte (2)

Friedrich
Friedrich il 8 Lug 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 Commenti
Maxime
Maxime il 8 Lug 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 il 8 Lug 2011
I am very grateful for your help and I hope there is no problem :D

Accedi per commentare.


simar
simar il 8 Lug 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!

Translated by