Generate a vector with elements based on certain elements in another vector
조회 수: 11 (최근 30일)
이전 댓글 표시
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
답변 (2개)
Alan Stevens
2024년 10월 30일
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
2024년 10월 30일
편집: Shantanu Dixit
2024년 10월 30일
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:
참고 항목
카테고리
Help Center 및 File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!