指定した座標の値を違う変数に格納する方法
5 views (last 30 days)
Show older comments
たとえば,
A=[1 3 ; 1 4 ; 1 7 ; 5 7]
という配列があり,1列目を「行」,2列目を「列」としています.
Bという変数が10×10の正方行列を持っていたとして,
Bが持つAで指定した行列の位置の値を別の変数Zに格納する方法はないでしょうか?
尚,ループなしという条件になります.お手数ですがよろしくお願いいたします.
0 Comments
Accepted Answer
Hernia Baby
on 22 Apr 2021
Edited: Hernia Baby
on 22 Apr 2021
Aを添字から線形インデックスへ変換すれば可能です。
まずは前準備し、10×10の行列を作ります。
A = [1 3 ; 1 4 ; 1 7 ; 5 7];
B = reshape([1:100],[10,10])
B =
1 11 21 31 41 51 61 71 81 91
2 12 22 32 42 52 62 72 82 92
3 13 23 33 43 53 63 73 83 93
4 14 24 34 44 54 64 74 84 94
5 15 25 35 45 55 65 75 85 95
6 16 26 36 46 56 66 76 86 96
7 17 27 37 47 57 67 77 87 97
8 18 28 38 48 58 68 78 88 98
9 19 29 39 49 59 69 79 89 99
10 20 30 40 50 60 70 80 90 100
-------------------
Aを添字から線形インデックスへ変換します。
As = sub2ind(size(B),A(:,1),A(:,2))
As =
21
31
61
65
-------------------
As番目のBを抜き出し、Cに格納します。
C = B(As)
C =
21
31
61
65
----------------------------------------
sub2indはこちら
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!