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

2 vues (au cours des 30 derniers jours)
fyza affandi
fyza affandi le 29 Nov 2018
Commenté : fyza affandi le 29 Nov 2018
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]

Réponse acceptée

KSSV
KSSV le 29 Nov 2018
Modifié(e) : KSSV le 29 Nov 2018
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)]

Plus de réponses (2)

dpb
dpb le 29 Nov 2018
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 le 29 Nov 2018
Modifié(e) : madhan ravi le 29 Nov 2018
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(:)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by