How to input signal to skip numbers and generate data?

1 visualización (últimos 30 días)
Leon Low
Leon Low el 27 de En. de 2021
Comentada: Mara el 29 de En. de 2021
I have a set of random 0s and 1s matrix A = [0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0]. I want to create a matrix B that has the same size as A that if i input an interval of say 'n', it skips n numbers, and if it lands on 1, it records 1 but if it lands on 0 it records 0. however, if it doesnt land on 1 for a long time and finally lands on a 1, it records a 1 even though it has skipped more than n numbers. How do I create this matrix B?
For example, n = 2, then matrix B = [0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0]

Respuesta aceptada

Mara
Mara el 27 de En. de 2021
A = [0 0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0];
n = 2;
B = zeros (1,length(A));
count = 0;
for i = 1:length(A)
count = count + 1;
if A(i) == 1 && count > n
B(i) = 1;
count = 0;
end
end
Does this help you?
  5 comentarios
Leon Low
Leon Low el 28 de En. de 2021
Hey Mera, how do I force the system matrix A to start from the first “1” it sees? When I try to put n=8, it does not start from the first “1”
Mara
Mara el 29 de En. de 2021
there are many different ways to find the first nonzero position, one is the function find().
Citing the documentation:
k = find(X,n) returns the first n indices corresponding to the nonzero elements in X.
type "doc find" in the command window for more info.
Best,
Mara

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by