MATLAB: Add values to the i-th position of a table/double

doubleforfor loopMATLABtable

Hi everyone,
How can I add a values to a double 'x' inside a for cycle?
I do not mean to replace the i-th value itself but to add one value (xsim1) between i»i+1 and one value (xsim2) between i+1»i+2.
For example:
x=data(:,1).'; %1×203 double
y=data(:,2).'; %1×203 double
for i=1:length(x)-2
if angle>100
xsim1=(x(i)/2)+x(i+1)/2;
ysim1=(y(i)/2)+y(i+1)/2;
xsim2=(x(i+1)/2)+x(i+2)/2;
ysim2=(y(i+1)/2)+y(i+2)/2;
angle = … (not relevant);
if angle>100
num_sharp_edges=num_sharp_edges+1;
else
ADD POINT TO THE DOUBLE IN THE RIGHT POSITIONS
I hope I am specifying what I am trying to do clearly.
Thank you very much in advance.
António

Best Answer

if you are trying to insert xsim1 between x(i) and x(i+1) without any data loss, write this code:
x = [x(1:i), xsim, x(i+1:end)]
the value is injected to your vector meaning that if its previous length was "n" now it is "n+1". notice that if you use this in a for loop, the size of your vector changes periodically. in order to avoid that, you have to preallocate the final vector size. if you do this, then it means rather than inserting value you must assign value which is more efficient.