which function I can use?

1 回表示 (過去 30 日間)
yue li
yue li 2018 年 8 月 31 日
編集済み: yue li 2018 年 9 月 1 日
Hello,
There are two matrices.
I want to calculate the p value of each row.
>> x
x =
0.3192 1.0933 -0.0068 -1.0891 -1.4916
0.3129 1.1093 1.5326 0.0326 -0.7423
-0.8649 -0.8637 -0.7697 0.5525 -1.0616
-0.0301 0.0774 0.3714 1.1006 2.3505
-0.1649 -1.2141 -0.2256 1.5442 -0.6156
0.6277 -1.1135 1.1174 0.0859 0.7481
>> y
y =
-0.1924 -0.1774 -0.8045 -1.1480 -0.0825 0.1001 1.7119
0.8886 -0.1961 0.6966 0.1049 -1.9330 -0.5445 -0.1941
-0.7648 1.4193 0.8351 0.7223 -0.4390 0.3035 -2.1384
-1.4023 0.2916 -0.2437 2.5855 -1.7947 -0.6003 -0.8396
-1.4224 0.1978 0.2157 -0.6669 0.8404 0.4900 1.3546
0.4882 1.5877 -1.1658 0.1873 -0.8880 0.7394 -1.0722
function [P] = p_row(x,y)
x1=size(x,1);
y1=size(y,1);
for i=1:x1
if lillietest(x(i,:)) == 1
P(i)=ranksum(x(i,:),y(i,:));
elseif lillietest(y(i,:)) == 1
P(i)=ranksum(x(i,:),y(i,:));
elseif vartest2(x(i,:),y(i,:)) == 1
P(i)=ranksum(x(i,:),y(i,:));
else
[tmpH,tmpP]=ttest2(x(i,:),y(i,:));
P(i)=tmpP(1);
end
end
>> p=p_row(x,y)
p =
0.7961 0.2773 0.1490 0.1877 0.6335 0.6010

採用された回答

yue li
yue li 2018 年 8 月 31 日
編集済み: yue li 2018 年 8 月 31 日
Hello, Star Strider,
Thank you for your response!
1. I want to calculate the p value of each row in two matrics.
2. I prefer to use ttest2().
3. If the values in each row are not normal distribution, I have to use ranksum().
4. If the values of each row in two matrics are not equal variance, I have to use ranksum().
My output is shown above.
How can I only have the last line of output?
Thank you so much for your help!
Yue

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDescriptive Statistics についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by