• ベストアンサー

MATLABについて

Matlabで行列の絶対値の平均値を求めるにはどうすればよいですか? 以下の行列noiseの各要素の絶対値の平均値が知りたいのですが。 t = linspace(0,1,100); randn('state',sum(100*clock)+0); noise=randn(size(t));

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

  • ベストアンサー
  • mach999
  • ベストアンサー率75% (36/48)
回答No.1

動作確認が現在できないので自信がないのですが、 ret = mean(mean(abs(noise))); とかでどうでしょうか?

関連するQ&A

  • MATLABの乱数生成関数 rand( ) について

    一様乱数を生成する関数rand()について  ・Y = rand(n);  ・rand('state',sum(100*clock));   Y = rand(n); という2つのやり方があるようなのですが,以下のmatlabの関数の説明 のページをみても2つの違いが理解できません. http://infoshako.sk.tsukuba.ac.jp/ShakoDoc/MATLAB5/jhelp/techdoc/ref/rand.html どういう違いがあるのでしょうか? また,この関数は[0,1]の一様乱数としていますが,[-a,a]みたいに範囲指定はできないのでしょうか? 回答よろしくお願いします.

  • MATLABでSVMのプログラミングについて

    SVMのサンプルコード(MATLAB)を読んでいますが、和訳はできてもそれぞれが何のために行われているのかイメージできず困っています。 ===================================== X1 = randn(2, num1) + 2*ones(2, num1); X2 = randn(2, num2) - 2*ones(2, num2); X = [X1, X2]; ===================================== の意味は、 ==================================== X1=平均が0で分散が1の正規分布の2行10列の乱数行列と、全ての要素がプラス2の2行10列の行列を加算した結果。 X2=平均が0で分散が1の正規分布の2行10列の乱数行列と、全ての要素がマイナス2の2行10列の行列を加算した結果。 X=X1とX2の正規分布を内包した世界。 ===================================== SVMという分類器を使う前に、分類前のデータを扱い易い尺度の世界にいれる下準備なのかなぁ、と想像していますが、 なぜ平均が0で分散が1の正規分布なのか、なぜそれを2倍したり、マイナスにした世界を用意しているのかわかりません。(これはたまたまこのコードでそう設定しているだけで、平均や分散の値は変更してかまわないのでしょうか。もしそうであれば、どういうデータを分類する場合により大きな分散にするべきでしょうか。) 正規分布の世界は平均とSD値で完全に記述でき、また異なる正規分布のXとYに、ある重みづけをしてもやはり正規分布に従う、という性質がありますが、それとこのSVMでの冒頭処理はどう関連付けられるのでしょうか。 統計、行列、ベクトルの知識が足りないのだなと実感し勉強中ですが、困っています。 すみませんが、ぜひヒントか勉強するべきポイントを教えていただけると助かります。 どうぞよろしくお願い致します。

  • matlab初心者の質問

    matlabに関する質問です。(私は初心者です。) 例えば A=[1 2 3 … n] のような行列があった場合、 B=[1 1+2 1+2+3 … sum(A(1:n))] のような行列を表示するにはどのようなコードを書けばいいのでしょうか。

  • matlabで価格時系列

    matlabで価格の時系列を発生させたいです。 現在はこんな感じです。 x1(1)=100 for t = 1:1000 x1(t+1) = x1(t) + randn; end これをfor文を使わないで書くことは可能でしょうか。 計算時間を短縮したいです。

  • MATLABでの行列の全要素の和

    MATLABでの行列の全要素の和を計算するのに下の例のようにfor文を使うのとsum関数を使うのとで結果が違います。何故ですか? 計算結果の差をとってみると極々微小な差が生じてしまいます(e-10位)。 シミュレーションの中でこのような処理を行っているのでより正確な方が知りたいです。 例 A=rand(10); plus=0; sum=0; for i=1:10  for j=1:10   plus=plus+A(i,j);  end end sum=sum(A(:));

  • matlabの行列計算の最大サイズはいくつですか?

    顔認識の研究にmatlabを使用していますが 複数の普通の画像をそのまま行列にすると 87500×87500やそれ以上のサイズの 分散共分散行列を計算することになってしまい 「メモリが足りません」 と表示されます。 どのくらいのサイズまでmatlabは計算できるのでしょうか? また、3*90000くらいの大きなサイズの行列から covを使わないで(というか大きすぎて使えない) 分散共分散行列を求める方法があったら教えてください!

  • MATLABの使い方

    純粋な数学の質問じゃなくて申し訳ないのですが、数学に関することなのでここで質問させていただきました。MATLABを使って以下のことを計算させたいのですが、その入力の仕方を教えてください。 1.以下の近似値を求めよ。 (1)e=lim[n→∞](1+1/n)^n (2)e=Σ[n=0→∞]1/(n!) (3)π=4(1-1/3+1/5-1/7+…) (4)π=4{4(1/5-1/(3・5^3)+1/(5・5^5)-…)-(1/239-1/(3・239^3)+1/(5・239^5)-…)}  (5)100^(1/9) (6)5^(-x)=x 2.以下の関数のグラフを表示させる  (1)e^(-x)・Arctanx (-5≦x≦5)  (2)x=(t^2-t-3)e^(t)・cost,y=(t^2-5t+1)e^(t)・sint (-1≦t≦10) MATLABに関してはまったくの初心者なので、できれば入力方法を具体的に示していただければ幸いです。よろしくお願いします。

  • Matlabのspdiags関数

    Matlabのspdiags関数に関してわからないところがあります。以下はMatlabのヘルプWebページから持ってきた例です。http://dl.cybernet.co.jp/matlab/support/manual/r2006/toolbox/matlab/math/?/matlab/support/manual/r2006/toolbox/matlab/math/sparse4.shtml B = [ 41 11 0 52 22 0 63 33 13 74 44 24 ]; d = [-3 0 2];、m=7, n=4のとき A = spdiags(B,d,7,4) A = (1,1) 11 (4,1) 41 (2,2) 22 (5,2) 52 (1,3) 13 (3,3) 33 (6,3) 63 (2,4) 24 (4,4) 44 (7,4) 74 これに対応するフル行列Aは、つぎのようになります。 full(A) ans = 11 0 13 0 0 22 0 24 0 0 33 0 41 0 0 44 0 52 0 0 0 0 63 0 0 0 0 74 mやnというのはfull(A)がm行n列の行列であるというイメージの対応がわかるのですが、d = [-3 0 2]とfull(A)の行列の関係がわかりません。-3,0,2というのはfull(A)のどこを見れば良いのでしょうか。

  • MATLAB 並び替え

    MATLABについての質問です。 いま、以下のような行例A(2*2)があります 1 0.24 1 0.44 1 0.67 2 4.69 2 9.40 3 6.4 3 6.66 3 5.67 3 3.98 3 9.92 4 1.43 ...続く 即ち、行列Aは一列目に整数のインデックス1~100、2列目にあるデータが格納されています。これを、新しい行列Bに並び替えたいのです。行列Bは行方向にデータ、列方向にAの一列目のインデックス、という風にしたいです。具体的には、 0.24  4.69  6.4  1.43 0.44   9.40   6.66 0.67      5.67          3.98          9.92 です。どのように書けばもっともシンプルでしょうか? 質問の仕方が悪かったらごめんなさい。どうぞよろしくお願いいたします。

  • MATLABにおける行の挿入方法

    こんにちは,現在データ整理のためにMATLABを用いて以下のようなプログラムを構築しています 1.ファイルを読み,その値を100行7列の行列Aとする 2.Aの10行目と11行目の間に1行7列の行列B1を挿入する (イメージ的にはEXCELの行の挿入です) 3.同様に20行目と21行目の間に1行7列の行列B2を挿入する 4.以降10行ごとに繰り返す となります.ここで2の処理にあたる「行列の特定の列の間に別の行列を挿入する」方法がわかりません いろいろ調べたのですが、このような方法はどこにもありませんでした MATLABに詳しい方,教えていただけないでしょうか?

専門家に質問してみよう