Filter löschen
Filter löschen

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

32 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

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

Melden Sie sich an, um zu kommentieren.


simar
simar am 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!

Translated by