指定した座標の値を違う変数に格納する方法

13 views (last 30 days)
翔 池田
翔 池田 on 22 Apr 2021
Edited: Hernia Baby on 22 Apr 2021
たとえば,
A=[1 3 ; 1 4 ; 1 7 ; 5 7]
という配列があり,1列目を「行」,2列目を「列」としています.
Bという変数が10×10の正方行列を持っていたとして,
Bが持つAで指定した行列の位置の値を別の変数Zに格納する方法はないでしょうか?
尚,ループなしという条件になります.お手数ですがよろしくお願いいたします.

Accepted Answer

Hernia Baby
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はこちら

More Answers (0)

Categories

Find more on 行列および配列 in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!