• ベストアンサー

【MATLAB】配列内のある数値の位置情報

MATLAB という汎用数値解析プログラムを使っています。 現在、100×100の配列の中にランダムな数字(0~40)が入ったデータを扱っています。 その配列内の、ある数字がどこに入っているかを算出する方法を教えてください。 例えば、『3』という数字は配列の(5,6)と(20、36)に入っている・・・という風に知ることは可能でしょうか。 ご回答よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • akr104
  • ベストアンサー率49% (25/51)
回答No.1

MATLABは知らないのですが、「ある数字がどこに入っているか」の確認方法について お手伝いできるかも、と思ったので回答します。 おそらく一般的なのは、「繰り返し」(for文など?)を使って、 「配列の中身を全てチェックして、目的の数値だったら抽出する」 という事でしょう。 具体的には、 (0,0)は3かどうかチェック、 (0,1)は… (0,2)は : : (99,98)は… (99,99)は… という具合です。 C言語であれば、 for(i=0;i<100;i++){ for(j=0;j<100;j++){ if(a[i][j]==3){ printf("a[%d][%d]は3です\n", i, j); } } } という具合に。 参考になりましたでしょうか?

okmijnuhbygv
質問者

お礼

回答ありがとうございます。 返事が遅れて申し訳ありませんでした。 大変参考になりました。

その他の回答 (2)

  • m0r1_2006
  • ベストアンサー率36% (169/464)
回答No.3

find と ind2sub の help を読もう. doc find doc int2sub help find help int2sub など

okmijnuhbygv
質問者

お礼

回答ありがとうございます。 返事が遅れて申し訳ありませんでした。 help読みました・・・が難しいですね。 基礎力をもっとつける必要を痛感しました

  • Kules
  • ベストアンサー率47% (292/619)
回答No.2

さすがにこういうのは自分で探してほしいなあ…と思ったり。 Matlabにはlookforというコマンドがあり、これはMatlabの関数の中身(コメント部)を検索してくれます。 私の環境では lookfor 探す の結果は0件でしたが、 lookfor 検索 では多数ヒットしました。 その一番上に出てきたfindを調べると、所望の機能を持った関数であることがわかります。 それぞれの関数の使い方ならまだしも、関数の探し方ぐらいはマスターしておいた方がいいですよ。 (多分このぐらいならgoogleとかでも出てきそうですし) 最後小言みたいになってしまいすみません。 参考になれば幸いです。

okmijnuhbygv
質問者

お礼

回答ありがとうございます。 返事が遅れて申し訳ありませんでした。 勉強不足でお恥ずかしいです。 私の探し方も悪いのでしょうね・・・ そこも含めて精進します!

関連するQ&A