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

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

Akzeptierte Antwort

Hernia Baby
Hernia Baby am 22 Apr. 2021
Bearbeitet: Hernia Baby am 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はこちら

Weitere Antworten (0)

Kategorien

Mehr zu 行列および配列 finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!