which function I can use?

6 vues (au cours des 30 derniers jours)
yue li
yue li le 31 Août 2018
Modifié(e) : yue li le 1 Sep 2018
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

Réponse acceptée

yue li
yue li le 31 Août 2018
Modifié(e) : yue li le 31 Août 2018
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

Plus de réponses (0)

Catégories

En savoir plus sur Dynamic System Models dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by