Given a vector of assorted positive integers, how to create a vector with the means of every 2 integers inserted between each other?
    5 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
I've managed to take the mean of the whole vector with the mean function, but this doesn't seem like the right path to take. I am thinking of: v= 2 6 8 3 1 9 4 5 7 m1= v(1,2:9) m2= [m1,v(end)] m3= [v;m2] vmeans=mean(m2)
there are quite a few intermediate steps just to get to the vector of the means by themselves.
any answers to get to these values better or how to insert those values in between each original integer are much appreciated
thanx
0 Commenti
Risposta accettata
  David Young
      
 il 9 Giu 2011
        result = interp1(v, linspace(1, length(v), length(v)*2-1), 'linear')
2 Commenti
  David Young
      
 il 12 Giu 2011
				Yes, to understand this it may help to note that, for example
 linspace(1, 3, 5)
gives 
 [1 1.5 2 2.5 3]
- that is, the points in the index space of v for which you want to find values.
Più risposte (3)
  David Young
      
 il 9 Giu 2011
        result(1:2:2*length(v)-1) = v;
result(2:2:2*(length(v)-1)) = conv(v, [1 1]/2, 'valid')
0 Commenti
  Andrei Bobrov
      
      
 il 9 Giu 2011
        m2 = v([2:end,end]);
m3 = [v;m2];
vmeans = mean(m2);
EDIT
vout = reshape([v;conv(v,[1 1],'valid')/2 0],1,[]);
vout = vout(1:end-1);
more only it case
vout = interp1(1:length(v),v,1:.5:length(v));
4 Commenti
  David Young
      
 il 9 Giu 2011
				It's more efficient to divide the mask in the convolution by 2, rather than dividing the result of the convolution by 2.
linspace is preferable to using the colon operator if the output needs to be a definite length and the increment is not an integer.
  David Young
      
 il 9 Giu 2011
        v= [2 6 8 3 1 9 4 5 7];  % data
m = (v(1:end-1)+v(2:end))/2;
t = [v; [m 0]];
t = t(:);
result = t(1:end-1).'
0 Commenti
Vedere anche
Categorie
				Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


