• ベストアンサー

MATLABの関数で配列の要素を返す方法

現在MATLABについて勉強しているのですが、関数(function)を用いて配列の値を返す方法が分からず困っています。 関数で定義した配列A(m行n列)を用いて、メイン関数で配列の要素Aijを呼び出す、ということがしたいのです。 function y=Func(x)等で1変数や他変数の入出力の仕方は分かります。 どなたか初心者でも理解できるようご教授お願い致します。

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

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

ん~ちょっとやりたいことがわからないのですが。 関数Funcの返り値がAで、その特定の要素を取りだすということでしょうか? それとも、Func内で定義されたAの特定の要素だけを返り値にしたいということでしょうか? 前者であれば A=Func(~);としておいて、B=A(i,J);とすれば取り出せますし、 後者であれば、Func内でy=A(i,j);とすれば取り出せると思うのですが。 すみません、あまり状況がつかめていないです。もう少し詳しく補足していただければ、 もう少し有用な回答ができるかと思います。 参考になれば幸いです。

yukibeatles
質問者

お礼

丁寧なご回答ありがとうございます。 分かりにくい質問で申し訳ありません… やりたかったのは後者です。 ありがとうございました*

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • matlabについて教えてください

    プログラミング初心者です。matlabについて教えてください いまmatlabのプログラム上に、x, y, z, という、それぞれ5行1列の変数があります。 これらをまとめて、linuxのテキストエディタ(geditなど)で読み込める1つのファイルを作りたいと思っています。 作りたいファイルは、1列目にx、2列目にy、3列目にz の値が並んでいるような感じです。 どうかやり方を教えて下さいますようお願いします。

  • 二つの配列の要素を比べる方法がわかりません

    いつもお世話になっています。 n行3列の配列のVectorが二つあります。 その同じ行と列に対応する要素どうしを比較する ためにVectorから値を取得したいのですが、その 方法がわかりません。 なんとなくtoArrayというメソッドを使うんじゃないのかなあという気はしてるんですが…。 ちなみにVectorにaddするときは、1行3列のString型の配列をaddしています。 Vectorの配列から要素を取り出す方法をご存知の方が いらっしゃいましたら、ご教授ください。

    • ベストアンサー
    • Java
  • MATLABで配列をファイルへ書き込む方法

    現在MATLABについて勉強しているのですが、配列M(N×N、Nは任意)をファイル(.txtなど)に書き込む方法が分からず困っています。 fid=fopen('matrix.txt','wt'); fprintf(fid,'%6.4f',M); fclose(fid); このように書いているのですが、全要素が1行に並んでしまいます。 N行N列の形で配列をファイルに出力したいのです。 どなたか初心者でも理解できるようご教授お願い致します。

  • Matlabで自作関数をオーバーロード

    Matlabの組み込み関数の中には、引数の数や戻り値の数に応じて異なる作用をするものが沢山あると思います。 例えば組み込みのmax関数だと y=max(x) ならxの第一次元にについての最大値を返しますし、 [y,i]=max(x) なら、さらに i に最大値のindexを代入、 一方 x=max(x,y) ならx,yの各要素について大きい方を取った行列を、 x=max(x,[],d) ならxのd次元についての最大化をしてくれます。 質問ですが、そういう関数を自分で作ることは可能ですか? function [z,w]=f(x,y) という風に関数を定義してしまうと、たとえyを関数中で利用しない場合でも、引数yを指定しなければエラーになってしまいます。同じ関数名でも呼び方に応じて異なった操作をさせることはできないでしょうか?

  • エクセルの配列関数の制限について

    エクセルの配列関数の制限について V列にX列・Y列・Z列・AA列・AB列・AC列・AE列・AG列・P列を参照した配列関数を 下のように入力しています。 {=SUM((Y$1:Y$500=F7)*(Z$1:Z$500=H7)*(AA$1:AA$500)*(P7="○"),(AB$1:AB$500=F7) *(AC$1:AC$500=H7)*(AE$1:AE$500=H7)*(AG$1:AG$500)*(P7="×"))} このY列・Z列・AA列・AB列・AC列・AE列・AG列は、ぞれぞれ200行くらいしか 文字が入力されていない場合には、配列関数の結果がうまく表示されました。 これらのセルの200行以降から300行・400行と項目を増やしていったところ、 配列関数の結果がうまく表示されないセルが出てきました。 これは、配列関数の参照するセルに制限があるということでしょうか?

  • 配列を返す関数から、一つの要素だけ取り出したい。

    例えば、配列を返す関数、get_array がある時、 その配列の0番目の要素だけが欲しい時、 Perlでは、 $val = get_array[0]; (配列リファレンスを返す場合は、$val = get_array->[0]; ) みたいな感じで書けたと思いますが、 PHPでは、 $val = get_array()[0]; みたいに書けないですよね? 以下のように、二行で書かなければダメですか? $array = get_array(); $val = $array[0];

    • ベストアンサー
    • PHP
  • 関数で配列を返す方法

    ユーザー関数で、値を返す方法はしっています。 return 変数名; では配列を返す場合はどうすればよいのでしょうか?

  • 二次元配列が、勝手に一次元配列になってしまう

    Excelのマクロで、二次元配列を格納したバリアント型を戻り値とする関数を作ったのですが、… 二次元型配列のひとつの要素数が1の時、受け取ったバリアント型変数は、一次元配列になっています。 列ベクトルなら、それもありかな~と思うのですが、なんで、行ベクトルまで、一次元配列にするんだよ~って、困っています。 シートから関数を呼んだ場合は、列ベクトルは列ベクトル、行ベクトルは行ベクトルとして、表示されるので、マクロの中で関数を呼び出した場合も、行列の情報を保持できる方法があるんじゃないかと思ったのですが。 どなたか、ご教示頂けるとありがたいです。 よろしくお願いします。

  • C++:ある関数を定義するときに別の関数を用いて定義はできないのですか。

     Visual C++を使っています。  以下のように関数func2において関数func1を使いたいのですがコンパイルするとポインタがどうのこうのと言ってきます。  書き方が間違っているのでしょうか、別にいい方法がありましたら教えてください。参考書はありますので、どの項目を見ればよいと言うアドバイスでも結構です。 const double a=100.0; //グローバル変数aを定義 //関数func1を定義 double func1(double x){ return exp(x); } //関数func2を定義 double func2(double y){ return func1(a)*exp(y);//func(a)は係数。 } 実際はfunc1とfunc2はもっと複雑な形なのでどうしても別々に定義したいです。

  • 配列の要素数に変数を入れたいときには

    よろしくお願いします。 配列の要素数には定数しか入れられないのですが,どうしても変数を入れたいときは,それを引数として関数を呼び出すしか方法はないでしょうか。 具体的には,scanfで手に入れたint型の変数を要素数とする配列を宣言したいのですが,どうすれば良いでしょうか。 ご教授ください。

このQ&Aのポイント
  • プリンター【mfj-j9673cdw】を使用している方の中には、スキャン結果をPCに直接保存できなくなったというお悩みを抱えている方がいらっしゃるようです。
  • 無線LANを利用してスキャン結果をPCに保存していたが、昨年末からプリンターがPCを認識しなくなりました。現在はUSBを介して保存しています。
  • PCからのプリントアウトやFAX送信はできているが、スキャン結果を直接PCに保存することができない状況です。
回答を見る

専門家に質問してみよう