MATLAB Answers

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

3 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)

Community Treasure Hunt

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

Start Hunting!