If you have an input argument v that is a row-vector and another input a, that is a scalar. How do you have a function that moves every element of v that is equal to a to the end of the vector?

2 vues (au cours des 30 derniers jours)
For example,
x= move ([1 2 3 4], 2), i want x to equal to [1 3 4 2]
thanks an advance

Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 9 Août 2016
Modifié(e) : Stephen23 le 6 Mai 2017
Even more generic
a=[1 2 3 4 3 2 1]
idx=a==2
b=[a(~idx),a(idx)]

Plus de réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 9 Août 2016
Modifié(e) : Azzi Abdelmalek le 9 Août 2016
x= [1 2 3 4]
idx=2
move=@(x,ii)[x(setdiff(1:numel(x),ii)) x(ii)]
If you want to move the second number of x
out=move(x,2)

Catégories

En savoir plus sur Logical 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