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!