Effacer les filtres
Effacer les filtres

How to change values in an array based on certain rules?

2 vues (au cours des 30 derniers jours)
Ryan Fedeli
Ryan Fedeli le 5 Mar 2019
I have an array and I want to change it so that all entries are zero except each first appearing 1 and -1.
But also, the first nonzero entry needs to be a +1.
I've been trying to use a for loop with if statements to accomplish this, but I can't figure out what rules would be used.
The result should be this:
x = [-1 0 0 1 1 0 1 -1 -1 -1 0 1 1 1 0 0 1 -1 0 0 -1 1 0 0 -1 0] % change this array to...
xx= [ 0 0 0 1 0 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 0 0 -1 0] % this
% ^ ^ ^ ^ ^ ^ ^
% | % all of these are the only ones that remain - they alternate between 1 and -1
% |
% and here the -1 from x is eliminated because there is no preceding +1
% the array x is randomly generated to be a -1, 0, or a 1
Any insight would be appreciated... thank you

Réponse acceptée

Yasasvi Harish Kumar
Yasasvi Harish Kumar le 6 Mar 2019
Hi,
Something like this should fix your problem.
f = 1;
for i = 1:length(x)
if x(i) == f
xx(i) = f;
f = -f;
else
xx(i) = 0;
end
end
Regards

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating 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