%---------------------------------------- %1) Interpoliacija svoris = 60; filename = 'Duomenys.xlsx'; % ikeliami duomenys A = xlsread(filename); %nuskaitomi duomenys [m,n] = size(A); %skaiciuojama kiek yra elementu m - eiluciu skaicius, n - stulpeliu skaicius xx = 1:n; % sugraduojama nuo 1 iki n yy = 1:m; % sugraduojama nuo 1 iki m [X,Y] = meshgrid(xx,yy); figure surf(X,Y,A) title('Original Sampling') view(2) kartai = 7; % kiek kartu sumazinti, interpoliacijos dydis 7 = (1/(1.4*5)) x1 = 1:(1/kartai):n; y1 = 1:(1/kartai):m; [Xq,Yq] = meshgrid(x1,y1); Vq = interp2(X,Y,A,Xq,Yq); %Filtravimas mazesniu apkrovu nei 0.5 Vq(Vq < 0.5) = 0; figure surf(Xq,Yq,Vq) title('Linear Interpolation Using Finer Grid') view(2) %-------------------------------------------------- %2) Skaiciavimai %1) pėdos padalijimas į 3 dalis: [ilgis,plotis] = size(Vq); pirmas = fix(ilgis/2.3); % dalijama be liekanos antras = fix(ilgis/1.5); % dalijama be liekanos priekis = Vq(1:pirmas,:); vidurys = Vq(pirmas:antras,:); galas = Vq(antras:ilgis,:); %2) Randamos maksimalios apkrovos ir jų vietos (x,y) skirtingose pėdos %dalyse [max_galas,max_idx_galas] = max(galas(:)); [Xg, Yg]=ind2sub(size(galas),max_idx_galas); %-------------------------------------------------- %3) Kulno apkrovų analizė kaire = galas(Xg -10, Yg); desine = galas(Xg +10, Yg); kulno_deformacijos_parametras = desine / kaire; % jei > 1.2 pronacija, jei <0.85 supinacija if kulno_deformacijos_parametras < 0.85 kulno_deformacija = 'Supinacija'; elseif kulno_deformacijos_parametras > 1.2 kulno_deformacija = 'Pronacija'; else kulno_deformacija = 'Nera'; end %-------------------------------------------------- %4) Išilginio skliauto nustatymas visu_apkrovu_suma_priekis= sum(priekis(:),'omitnan' ); % sumuojamas visas slegis visu_apkrovu_suma_vidurys= sum(vidurys(:),'omitnan' ); visu_apkrovu_suma_galas= sum(galas(:),'omitnan' ); visas_apkrovos_plotas_priekis = nnz(priekis); % skaiciuojama kiek elementu yra visoje vidurio dalies matricoje >0 visas_apkrovos_plotas_vidurys = nnz(vidurys); visas_apkrovos_plotas_galas = nnz(galas); visas_plotas = visas_apkrovos_plotas_priekis + visas_apkrovos_plotas_vidurys + visas_apkrovos_plotas_galas; pedos_supinacijos_parametras = visu_apkrovu_suma_vidurys/visas_apkrovos_plotas_vidurys; pedos_isilginio_skliauto_parametras = visas_apkrovos_plotas_vidurys/(visas_plotas); % Nustatomas isilginio skliautas if pedos_isilginio_skliauto_parametras < 0.15 && pedos_supinacijos_parametras > 5; isilginis_skliautas = 'Normalus, peda supinuota'; elseif pedos_isilginio_skliauto_parametras < 0.10; isilginis_skliautas = 'Aukstas'; elseif pedos_isilginio_skliauto_parametras < 0.15; isilginis_skliautas = 'Normalus'; elseif pedos_isilginio_skliauto_parametras < 0.20; isilginis_skliautas = 'I laipsnio plokščiapadystė'; elseif pedos_isilginio_skliauto_parametras < 0.30; isilginis_skliautas = 'II laipsnio plokščiapadystė'; else isilginis_skliautas = 'III laipsnio plokščiapadystė'; end %5) Pedos asies apskaiciavimas kaire_puse = priekis(:,1:(fix(plotis/2))); kaire_puse_kof = sum(kaire_puse(:),'omitnan' ); desine_puse = priekis(:,(fix(plotis/2)+1):plotis); desine_puse_kof = sum(desine_puse(:),'omitnan' ); pedos_asies_kof = (kaire_puse_kof / desine_puse_kof); %> 1.2 - peda virsta i vidu, < 0.9 - peda virsta i isore if pedos_asies_kof < 0.9 pedos_asis = 'Peda virsta i isorine puse'; elseif kulno_deformacijos_parametras > 1.2 pedos_asis = 'Peda virsta i vidine puse'; else pedos_asis = 'Peda stabili'; end %6) Skersinio skliauto nustatymas skersinio_skliauto_vieta = priekis(fix(ilgis/6):pirmas,(fix(plotis/3)):(fix(plotis/1.3))); skersinio_skliauto_vieta(skersinio_skliauto_vieta < (svoris/4)) = 0; % surandamos apkrovos, kurios didesnes nei svoris / 4 skersinio_skliauto_plotas = nnz(skersinio_skliauto_vieta); skersinio_apkrovos_suma = sum(skersinio_skliauto_vieta(:),'omitnan' ); skersinio_skliauto_kof = skersinio_apkrovos_suma / skersinio_skliauto_plotas; if skersinio_skliauto_kof > (svoris/3); skersinis_skliautas = 'reikalingas'; else skersinis_skliautas = 'nereikalingas'; end Pavadinimas = {'Svoris'; 'Ilgis'; 'Plotis'; 'Isilginis skliautas'; 'Skersinis skliautas'; 'Kulno deformacija'; 'Pedos asis'}; Parametras = [svoris; ilgis; plotis; pedos_isilginio_skliauto_parametras; skersinio_skliauto_kof; kulno_deformacijos_parametras; pedos_asies_kof]; Reiksme = ['kg'; 'mm'; 'mm'; {isilginis_skliautas}; {skersinis_skliautas}; {kulno_deformacija}; {pedos_asis} ]; Lentele = table(Parametras, Reiksme, 'RowNames', Pavadinimas) filename = 'output.xlsx'; writetable(Lentele,filename,'Sheet',1,'Range','A1')