How to replace half the number of specific element in an array?
Ältere Kommentare anzeigen
Hello every one,
I have a row vector having 8236 columns, out of which 863 columns have a value 4. I want to replace 431 of the columns by a value 2. For simplicity, I am giving a vector having only 23 columns
A=[1 2 3 4 4 1 2 4 4 3 4 4 4 2 1 3 4 4 4 2 1 4 4]
Here, in this vector, there are 12 columns having a value 4. How to replace half the columns by a value 2?
Any help will be appreciated.
Akzeptierte Antwort
Weitere Antworten (2)
KALYAN ACHARJYA
am 18 Jun. 2018
Bearbeitet: KALYAN ACHARJYA
am 18 Jun. 2018
A=[1 2 3 4 4 1 2 4 4 3 4 4 4 2 1 3 4 4 4 2 1 4 4];
for i=1:length(A)/2;
if A(i)==4
A(i)=2;
end
end
Ameer Hamza
am 18 Jun. 2018
Bearbeitet: Ameer Hamza
am 18 Jun. 2018
Here is one possible solution
A=[1 2 3 4 4 1 2 4 4 3 4 4 4 2 1 3 4 4 4 2 1 4 4];
index = find(A==4);
randomIndex = randperm(length(index));
A(index(randomIndex(1:end/2))) = 2;
it will randomly select which columns to change.
Kategorien
Mehr zu Entering Commands finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!