私はmatlabでvarfunの使用を理解しました。このテーブルのグループ化された変数にmean
とstd
を適用する必要があります。Varian in matlabは複数の関数を入力に適用します
N mut time
___ ___ ____
250 0.1 0.07
250 0.1 0.05
250 0.1 0.04
250 0.1 0.03
250 0.2 0.03
250 0.2 0.04
250 0.2 0.03
250 0.2 0.05
250 0.3 0.05
250 0.3 0.06
750 0.2 0.24
750 0.3 0.29
750 0.3 0.3
750 0.3 0.31
750 0.3 0.3
750 0.4 0.33
750 0.4 0.34
750 0.4 0.33
750 0.4 0.32
750 0.5 0.38
750 0.5 0.39
この表はN
の二つの値とmut
5つの異なる値を有し、IはN
とmut
によってグループ化time
の平均値を計算する必要があります。
mut N GroupCount mean_time
___ ___ __________ _________
0.1 250 4 0.0475
0.2 250 4 0.0375
0.2 750 1 0.24
0.3 250 2 0.055
0.3 750 4 0.3
0.4 750 4 0.33
0.5 750 2 0.385
が、今、私はまた、標準偏差を含む列を追加したい:私は@mean
Tgroup = varfun(@mean,T,'InputVariables','time','GroupingVariables',{'N','mut'})
を扱う機能をvarfun
機能を使用して、私が得るこれを行うには
ANS =
mut N GroupCount Fun_time
___ ___ __________ ___________________
0.1 250 4 0.0475 0.017078
0.2 250 4 0.0375 0.0095743
0.2 750 1 0.24 0
0.3 250 2 0.055 0.0070711
0.3 750 4 0.3 0.008165
0.4 750 4 0.33 0.008165
0.5 750 2 0.385 0.0070711
最後の列:これを行うには残念ながら、私はこれを取得、私は
func = @(x)[mean(x), std(x)]
無名関数を作成して、私はvarfunc
varfun(@(x)[mean(x),std(x)],([T(1:5:50,:);T(400:5:450,:)]),'InputVariables','time','GroupingVariables',{'mut','N'})
でそれを使用します'Fun_time'には2つのサブ列が含まれています。最初はグループ化された時間の平均であり、secon dはグループ化された時間の標準偏差。
これらの2つの列を無名関数を使用して直接分割するにはどうすればよいですか?これは、plyr
パッケージのRで行われている処理と非常によく似ています。
あなたは 'FUNC = @(x)は[平均(x)は、STD(x)は]'、すなわち[AB] MATLABであると考えていると試みることができるプロセスを簡素化するために
dplyr
を使用することができますR 'のcbind(a、b)と等価です – OdeToMyFiddleこれは私がすでに質問したことです。 – linello