単一のインデックスによる、複数のインデックス付け

配列の中から任意の複数の要素へアクセスしたいと思っています。
A = [12 36 91; 45 29 48; 33 25 11]
A(6) = 25
ですが、例えば、A(1)とA(6)、A(9)へアクセスしたいときは、どのようにしたら良いでしょうか。
実際はかなり多くの要素を持つ配列から、規則性なく複数の要素へアクセスしたいと思っています。
基本的な質問で恐縮ですが、お教えください。

 Accepted Answer

Kenta
Kenta on 21 Jan 2020

2 votes

A = [12 36 91; 45 29 48; 33 25 11];
A(3)
A(7)
A(9)
idx=[3 7 9];
A(idx)
idx2=find(mod(A,3)==0);
A(idx2)
こんにちは、かっこの中に、指定する値をもつ行列を入力すればできます。
今後は複数の要素にアクセスしたいとのことですが、例えば、Aの中で3の倍数のみを取り出したい場合、
下の2行になります。

6 Comments

Jun
Jun on 21 Jan 2020
ありがとうございました。解決できました。
Jun
Jun on 21 Jan 2020
「この回答を採用」をクリックしましたが、エラーが出るので時間をあけてから対応させていただきます。
Kenta
Kenta on 21 Jan 2020
丁寧にありがとうございます。はいまたのちほどお願いいたします。
また不明点があれば、ここでご質問ください。
Jun
Jun on 21 Jan 2020
さらにもう一つ、ご教授ください。
ちなみに、行番号・列番号の指定で複数の要素を指定することができますか?
Kenta
Kenta on 21 Jan 2020
A = [12 36 91; 45 29 48; 33 25 11]
sub=[1 2;
2 2;
3 1];
A(sub2ind(size(A),sub(:,1), sub(:,2)))
これでできます!
Jun
Jun on 21 Jan 2020
ありがとうございました。

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

Jun
on 21 Jan 2020

Commented:

Jun
on 21 Jan 2020

Community Treasure Hunt

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

Start Hunting!