フィルターのクリア

Adding neighboring numbers in a cell to another cell

1 回表示 (過去 30 日間)
Austin Sowers
Austin Sowers 2019 年 5 月 2 日
コメント済み: Austin Sowers 2019 年 5 月 2 日
When I encounter a -10 in CA, I want to add the two immediate neighboring numbers from CB to it. If the -10 is on an edge/end, ignore it.
% My input would be
CA = {[5 -10 2],[6 6 -10],[0 9 -10 8 -10 3]};
CB = {[4 17 2],[6 6 10],[9 3 4 9 7 6]};
% My output would be
CA = {[5 -4 2],[6 6 -10],[0 9 2 8 5 3]};
% For example: the first -10 encountered (between the 5 and 2 in CA)
% would get 6 added to it (from the 4 and 2 in CB)

採用された回答

Stephen23
Stephen23 2019 年 5 月 2 日
編集済み: Stephen23 2019 年 5 月 2 日
CA = {[5,-10,2],[6,6,-10],[0,9,-10,8,-10,3]};
CB = {[4,17,2],[6,6,10],[9,3,4,9,7,6]};
for k = 1:numel(CA)
idx = 1+find(-10==CA{k}(2:end-1));
CA{k}(idx) = CA{k}(idx)+CB{k}(idx-1)+CB{k}(idx+1);
end
Giving:
>> CA{:}
ans =
5 -4 2
ans =
6 6 -10
ans =
0 9 2 8 5 3
  4 件のコメント
Stephen23
Stephen23 2019 年 5 月 2 日
編集済み: Stephen23 2019 年 5 月 2 日
for k = 1:numel(CB)
idx = 1+find(CA1{k}(2:end-1)==-10 & CA2{k}(2:end-1)~=-10);
CA2{k}(idx) = CA2{k}(idx)+CB{k}(idx-1)+CB{k}(idx+1);
end
Giving:
>> CA2{:}
ans =
5 -3 2
ans =
6 6 -10
ans =
0 9 -10 8 6 3
Austin Sowers
Austin Sowers 2019 年 5 月 2 日
You have made my entire week! Thank you thank you thank you!!!! I hope you have a great day!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

タグ

製品


リリース

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by