problem with polyfin with matrix

1 view (last 30 days)
mohamed gryaa
mohamed gryaa on 12 Sep 2019
Edited: Matt J on 18 Sep 2019
Loudness=[2.79;3.16;3.71;2.29;2.49;2.64;2.9;2.79;2.91;3.35];
FlucStr=[0.0256;0.0277;0.0311;0.0246;0.021;0.0199;0.0194;0.0256;0.0213;0.0208];
Roughness=[0.491;0.6;0.728;0.34;0.425;0.515;0.617;0.491;0.389;0.438];
Sharpness=[1.03;1.11;1.21;0.887;0.934;0.954;0.985;1.03;1.04;1.12];
Leq=[39.7;40.9;42.6;38.1;38.9;39.5;40.6;39.7;40.3;41.7];
SIL=[29.4;30.9;32.9;26.9;28;28.8;30.1;29.4;28.8;30];
Tonality=[0.133;0.128;0.113;0.153;0.14;0.131;0.118;0.133;0.203;0.18];
Kurtosis=[2.2;2.2;2.2;2.44;2.49;2.48;2.45;2.2;2.39;2.38];
subjective=[7.5;7.02;6.94;7.91;7.96;7.91;7.78;7.42;7.86;7.47];
metriche=[Loudness FlucStr Roughness Sharpness Leq SIL Tonality Kurtosis];
i need to calculate polyfin for every 2 possible vector column with nchoosek in a loop for; i try this:
pairList = nchoosek(1:8,2);
pl=pairList';
for ii = 1:size(pl,2)
p=polyfitn(metriche(:,pl(:,ii)),subjective,1);
R(ii)=p.R2;
coeff(:,ii)=p.Coefficients;
end
the R and coeff are ok , but p is not ok.
where i am wrong??

Accepted Answer

Prabhan Purwar
Prabhan Purwar on 18 Sep 2019
I am assuming that you are attempting to fit a polynomial for 2 vectors only, at a time.
In the present code polynomial is fitted to a 3-dimensional data set, giving rise to a surface plot.
Following code may help you:
pairList = nchoosek(1:8,2);
pl=pairList';
for ii = 1:size(pl,2)
M=metriche(:,pl(:,ii));
x=M(:,1);
y=M(:,2);
p=polyfitn(x,y,1);
polyn2sympoly(p)
R(ii)=p.R2;
coeff(:,ii)=p.Coefficients;
end
Hope this helps

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!