Generate a vector with elements based on certain elements in another vector
50 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have a simple question but do not know the code that will give me the answer. Can you help me with this? I would like to create a vector B with the same length as A. The elements in B should be zero, except for the first n elements after a certain value appears at the ih-th position in vector A.
For example, vector B should contain the value 1 for three following positions when the first 1 appears in A. This means that vector B = [0;0;0;0;0;1;1;1;0;0] if A = [0;0;0;0;0;1;1;1;1;1].
0 comentarios
Respuestas (2)
Alan Stevens
el 30 de Oct. de 2024 a las 9:08
Like this?
A = [0;0;0;0;0;1;1;1;1;1];
B =zeros(size(A));
ptr = find(A==1);
B(ptr(1):ptr(1)+2)=1
Shantanu Dixit
el 30 de Oct. de 2024 a las 10:32
Editada: Shantanu Dixit
el 30 de Oct. de 2024 a las 10:35
Hi Bob,
You can achieve the conditional vector by first creating a vector 'B' initialized to zeros and then assigning the value 1 to elements following the first occurrence of 1 in vector 'A'.
- Use 'find' function to get the index ('ih') of the first occurrence of 1 in vector A.
- Initialize 'B' as a zero vector of the same length as 'A'.
- Set the next 'n' elements in 'B' to 1 starting from 'ih' by indexing (ensure indexing remains within array bounds)
I hope this helps!
You can refer to the MATLAB Onramp course to gain understanding on basic vector creation and indexing: https://matlabacademy.mathworks.com/details/matlab-onramp/gettingstarted
Also refer to the MathWorks documentation on following useful functions:
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!