How made the code as easy?

1 view (last 30 days)
VIJAY
VIJAY on 8 Nov 2018
Edited: madhan ravi on 8 Nov 2018
P=[1 32 3 78 5 6 7 8 9 10] ;P is my original array which has the size is 1*10; I have Q=[2 4 7];I want delete in Q array value in P array; My expect output is P=[ 1 3 5 6 8 9 10] by using for loop only because of the size of Q array may be change ;P(:,[Q(1) Q(2) Q(3)])=[] this command use only the size of Q array is 1*3 .So I need for loop logic which is common of any array size.

Accepted Answer

madhan ravi
madhan ravi on 8 Nov 2018
Edited: madhan ravi on 8 Nov 2018
P(Q)=[] %edited after Jan's comment
  13 Comments
Jan
Jan on 8 Nov 2018
You can omit the square brackets and 1:end :
P(Q)=[]
madhan ravi
madhan ravi on 8 Nov 2018
+1 @Jan cool

Sign in to comment.

More Answers (1)

Stephan
Stephan on 8 Nov 2018
Edited: Stephan on 8 Nov 2018
If you want to delete the values at the indicies in P, that are specified in Q use the answer from Madhan above. If you need to delete the values in P specified in Q use:
P(ismember(P,Q))=[]

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!