I have two arrays which are:
A=[1 1 4 2 1 3 1 3 2 2];
a=[1 3 1 2];
The outcome will be:
A=[4 1 1 3 2 2];
The very beginning elements in A turn empty based on the elements in a. It is possible by using loop and function find. Is there any other way? TIA

2 Kommentare

KSSV
KSSV am 19 Aug. 2020
How you the answer using A and a?
Walter Roberson
Walter Roberson am 19 Aug. 2020
Is the rule sort of like:
Look at the next element of a . Take the value there, and locate the first occurance of it in A, and change that to 0 in A. Then move on to the next element of a
Another way of saying that is that there are two 1's in a and the first two 1's in A are to be set to 0; there is one 2 in A and the first 2 in A is to be set to 0; there is one 3 in a and the first 3 in A is to be set to 0
??

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Jiaming Xu
Jiaming Xu am 26 Okt. 2022
Bearbeitet: Jiaming Xu am 26 Okt. 2022

0 Stimmen

I assume (1) your vector a indicates the numbers you want to delete in A and (2) you only delete the first number in A if any for each element in vector a.
You can use the following way to do so (delete the first element == i in A)
% A and a are given
for i = a
A(find(A==i,1))=[];
end
after run the code, you will have A as expected

Kategorien

Tags

Gefragt:

SM
am 19 Aug. 2020

Bearbeitet:

am 26 Okt. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by