こんな関数作ってみました。
temp1は2行X列の行列。縦のペアが他の列で重複するものがある場合、
検索して自動的に削除してくれます。
function temp=pairfind(temp1)
% Remove overlapped pair.
% ---Input---
% temp1: matrix(2 x X)
%
temp=temp1;
for k=1:size(temp,2)-1,
idx=[];
for kk=k+1:size(temp,2),
if((temp(1,k)==temp(1,kk))&&(temp(2,k)==temp(2,kk))),
idx=[idx kk];
%disp('bingo!')
end
end
temp(:,idx)=[];
end
%%%%%% END %%%%%%%%%%%%
(例)
AA=[1 2 3 1 2 3 1 2 3 1 2 3;
1 1 1 1 2 2 2 2 3 3 3 3];
rA=pairfind(AA)
rA =
1 2 3 2 3 1 3 1 2
1 1 1 2 2 2 3 3 3
MATLABのコードって忘れやすい・・・
プログラムのコマンドなんて忘れやすいもの・・・いっそのことネット上に保存してシェアしましょう!!
It's easy to forget command for MATLAB in programming.... Let's share small help for Matlab code with you on the web!!
It's easy to forget command for MATLAB in programming.... Let's share small help for Matlab code with you on the web!!
2011年6月14日火曜日
2011年5月19日木曜日
2011年5月10日火曜日
anova
anovaの1因子解析で、各サンプルの個数が異なるときの評価の仕方がこちら↓
ANOVA+多重比較解析
例1の方法を参照すればよい。これは便利だと思う。
そのほかの検定方法についてはこちら
Matlabによる初歩の検定
ANOVA+多重比較解析
例1の方法を参照すればよい。これは便利だと思う。
そのほかの検定方法についてはこちら
Matlabによる初歩の検定
2010年10月28日木曜日
2010年10月13日水曜日
2010年10月6日水曜日
ANOVA 分散因子解析
3群比較などの検定を行う時に使うのがANOVA解析。
p = anova1(X)
p = anova1(X,group)
p = anova1(X,group,displayopt)
[p,table] = anova1(...)
[p,table,stats] = anova1(...)
行列Xは(サンプルX群)で入力する。
p値が十分小さければ、群間の平均は等しくなく、有意差があることになる。
その後、post hocテストで正式に有意差を示すことができる(ここを参照)。
multcompare
という関数にstatsを入力すればOKらしい。
(例)
[p t st]=anova1(X,{'50Hz','200Hz','800Hz'},'off');
[c,m,h,nms]=multcompare(st,'display','on');
[nms num2cell(m)]
p = anova1(X)
p = anova1(X,group)
p = anova1(X,group,displayopt)
[p,table] = anova1(...)
[p,table,stats] = anova1(...)
行列Xは(サンプルX群)で入力する。
p値が十分小さければ、群間の平均は等しくなく、有意差があることになる。
その後、post hocテストで正式に有意差を示すことができる(ここを参照)。
multcompare
という関数にstatsを入力すればOKらしい。
(例)
[p t st]=anova1(X,{'50Hz','200Hz','800Hz'},'off');
[c,m,h,nms]=multcompare(st,'display','on');
[nms num2cell(m)]
2010年10月5日火曜日
polyfit 多項式のフィッティング
p = polyfit(x,y,n)
[p,S] = polyfit(x,y,n)
[p,S,mu] = polyfit(x,y,n)
例えば、リニアフィッティングなら、
x=1:3;
y=[190 204 305];
[p,s,mu]=polyfit(x,y,1);
p =
57.5000 233.0000
s =
R: [2x2 double]
df: 1
normr: 35.5176
mu =
2
1
となる。pは係数(aX+bのaとb)ということになる。
sは
muは、データxの平均と分散か。
ちなみに、フィットぐらいを調べる関数として、こんなものありました。
gfit
参考までにどうぞ。
ちなみに、Goodness-of-Fittingはオプション8に相当する。
[p,S] = polyfit(x,y,n)
[p,S,mu] = polyfit(x,y,n)
例えば、リニアフィッティングなら、
x=1:3;
y=[190 204 305];
[p,s,mu]=polyfit(x,y,1);
p =
57.5000 233.0000
s =
R: [2x2 double]
df: 1
normr: 35.5176
mu =
2
1
となる。pは係数(aX+bのaとb)ということになる。
sは
muは、データxの平均と分散か。
ちなみに、フィットぐらいを調べる関数として、こんなものありました。
gfit
参考までにどうぞ。
ちなみに、Goodness-of-Fittingはオプション8に相当する。
登録:
投稿 (Atom)