How do I add values to specific values/ specific place of an already existing array?
조회 수: 4 (최근 30일)
이전 댓글 표시
I have an array of number, t , from which I have extracted some elements at even intervals (every 30 elements, one was extracted) into an array, A.
I now intend to select specific elements in A that meet a condition (if statement), and add x elements to it (x/2 to each side). These new elements to be added are the ones around those specific elements in t (x/2 in each side).
e.g. t = [1.5, 2.5 ,3.5, 4.5, 5.5 ,6.5, 7.5, 8.5, 9.5, 10.5] ;
A = [3.5, 5.5, 7.5],
and in this case I will choose x = 2 elements.
I want to add 2 elements from t to A and finish with A = [ 2.5 ,3.5, 4.5, 5.5 , 6.5, 7.5, 8.5 ]
댓글 수: 0
답변 (1개)
Chetan Bhavsar
2021년 10월 13일
편집: Chetan Bhavsar
2021년 10월 15일
@Goncalo Costa will this work for you?
t = [1.5, 2.5 ,3.5, 4.5, 5.5 ,6.5, 7.5, 8.5, 9.5, 10.5]
A = [3.5, 5.5, 7.5]
x = 2
reqx =x/2;
Index = arrayfun(@(x) findstr(x,t),A)
finalIndex =[];
for i=1:length(Index)
finalIndex = [finalIndex Index(i)-reqx:Index(i)+reqx]
end
finalIndexUnique = unique(finalIndex)
requiredAnswer = t(finalIndexUnique)
댓글 수: 1
Chetan Bhavsar
2021년 10월 13일
@Walter Roberson Any better way i can handle below line as it changes size on every loop.
finalIndex = [finalIndex Index(i)-reqx:Index(i)+reqx]
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!