Addition to specified elements in a vector with for loop to create a new vector
    7 views (last 30 days)
  
       Show older comments
    
Hi all, 
I am trying to add to specified elements in a vector to create a new one with the new values, however, unfortunately I could not make it...
The addition has been made to all the elements!
clear all;
x=[-7.5 -2.5 2.5 7.5]  % 
for i=1:3
    xx(1,i)=2.5+x(i) % I need the 2.5 added only to [-7.5 -2.5 2.5] and also I need the output to be with the original vector included 
    % I mean I'd like the output to be 
    % xx(1,i)= [-7.5 -5 -2.5 0 2.5 5 7.5]
    % I know i only = 3 and I need the output to be 9 elements but what can I do ??
end
2 Comments
  Korbinian Volgt
 on 8 Nov 2019
				
      Edited: Korbinian Volgt
 on 8 Nov 2019
  
			I am not sure what your exact intention is by +2.5, I guess what you want is to have an equally distributed vector with a step of 2.5 instead of 5. In general it's good practice to predefine vectorlength, so one approach would be:
x=[-7.5 -2.5 2.5 7.5];
xx = zeros(1,7);
for i=1:3
  xx(1,2*i-1) = x(1,i);
  xx(1,2*i) = x(1,i) + 2.5;
end
xx(1,end) = x(end)
But much easier would be to define your vector as equal distributed numbers from your minimum to the maximum value with the stepsize of 2.5:
xx = -7.5:2.5:7.5
Accepted Answer
  David Hill
      
      
 on 8 Nov 2019
        xx=[x(1:3);x(1:3)+2.5];
xx=[xx(:)',x(4:end)];
3 Comments
  David Hill
      
      
 on 8 Nov 2019
				What elements to you want repeated? I don't understand what you are trying to do. What are you plotting against?
More Answers (0)
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

