Add a number(specific column) to vector without deleteing it.

2 次查看(过去 30 天)
I have an vector
a= [1 2 3 4 5 6 7 8]
How can I add 2.5 into the vector a at any location( in this example I want it to be at column2)
so that the result will be:-
p/s: not replace , the length increases
a= [1 2.5 2 3 4 5 6 7 8]

采纳的回答

KSSV
KSSV 2018-11-29
编辑:KSSV 2018-11-29
a= [1 2 3 4 5 6 7 8] ;
b = 2.5 ; % number to insert
pos = 2 ; % position at which number to be inserted
b = [a(1:pos-1) b a(pos:end)]

更多回答(2 个)

dpb
dpb 2018-11-29
One of many possible ways...
insertat=2;
val=2.5;
a=[a(1:insertat-1) val a(insertat:end)];
The key is to not store into the new array until the construction is done so don't change locations of expression RHS of assignment statement.

madhan ravi
madhan ravi 2018-11-29
编辑:madhan ravi 2018-11-29
Another possibility:
a=1:8;
b=zeros(1,numel(a)+1);
insert_position=2;
b(insert_position)=2.5;
b([1 insert_position+1:end])=a(:)

类别

Help CenterFile Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by