How do I add values to specific values/ specific place of an already existing array?
2 次查看(过去 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 个)
C B
2021-10-13
编辑:C B
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 个评论
C B
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!