Calculation of fascicle length and pennation angle

版本 1.3.0.0 (5.4 KB) 作者: Philipp Schenk
This functions calculates fascicle length and pennation angles of a muscles 3d data set.
233.0 次下载
更新时间 2013/4/16

查看许可证

%% under construction!
Some paths do not seem to work properly. I will correct this in the next few days.

To calculates the length and angles you need the following:
- a set of 3d data of the muscles fascicles
- coordinates of the force axis
- coordinates of the anatomical landmarks from the calcaneus, the fibula and the main direction of the foot

- the coefficients of the polynomials got calculates with coeffvalues.m

code of the functions polynomtestlin, polynomtest22 and polynomtest33:

function [coefftest]=polynomtest33(AWert,CWert)

% %POLYNOMTEST33 Create plot of datasets and fits

% % POLYNOMTEST33(AWERT,CWERT)

% % Creates a plot, similar to the plot in the main curve fitting

% % window, using the data that you provide as input. You can

% % apply this function to the same data you used with cftool

% % or with different data. You may want to edit the function to

% % customize the code and this help message.

% %

% % Number of datasets: 1

% % Number of fits: 1

%
%

% % Data from dataset "CWert vs. AWert":

% % X = AWert:

% % Y = CWert:

% % Unweighted

% %

% % This function was automatically generated on 09-Feb-2011 13:59:28

%
%
% Set up figure to receive datasets and fits

% f_ = clf;

% figure(f_);

% set(f_,'Units','Pixels','Position',[943 394 680 484]);

% legh_ = []; legt_ = {};
% handles and text for legend

% xlim_ = [Inf -Inf];
% limits of x axis

% ax_ = axes;

% set(ax_,'Units','normalized','OuterPosition',[0 0 1 1]);

% set(ax_,'Box','on');

% axes(ax_); hold on;

%
%

% % --- Plot data originally in dataset "CWert vs. AWert"

% AWert = AWert(:);

% CWert = CWert(:);

% h_ = line(AWert,CWert,'Parent',ax_,'Color',[0.333333 0 0.666667],...

% 'LineStyle','none', 'LineWidth',1,...

% 'Marker','.', 'MarkerSize',12);

% xlim_(1) = min(xlim_(1),min(AWert));

% xlim_(2) = max(xlim_(2),max(AWert));

% legh_(end+1) = h_;

% legt_{end+1} = 'CWert vs. AWert';

%
%
% Nudge axis limits beyond data limits

% if all(isfinite(xlim_))

% xlim_ = xlim_ + [-1 1] * 0.01 * diff(xlim_);

% set(ax_,'XLim',xlim_)

% else

% set(ax_, 'XLim',[67.61313437675885, 89.315211296848659]);

% end

% --- Create fit "fit 30"
ok_ = isfinite(AWert) & isfinite(CWert);
if ~all( ok_ )
warning( 'GenerateMFile:IgnoringNansAndInfs', ...
'Ignoring NaNs and Infs in data' );
end
ft_ = fittype('poly3');

% Fit this model using new data
cf_ = fit(AWert(ok_),CWert(ok_),ft_);

% % Or use coefficients from the original fit:
% if 0
% cv_ = { 0.00017185714749200226, -0.046155284038860329, 4.1919924194089013, -127.69125063698891};
% cf_ = cfit(ft_,cv_{:});
% end
coefftest=cf_;
% % Plot this fit
% h_ = plot(cf_,'fit',0.95);
% legend off; % turn off legend from plot method call
% set(h_(1),'Color',[1 0 0],...
% 'LineStyle','-', 'LineWidth',2,...
% 'Marker','none', 'MarkerSize',6);
% legh_(end+1) = h_(1);
% legt_{end+1} = 'fit 30';
%
% % Done plotting data and fits. Now finish up loose ends.
% hold off;
% leginfo_ = {'Orientation', 'vertical', 'Location', 'NorthEast'};
% h_ = legend(ax_,legh_,legt_,leginfo_{:}); % create legend
% set(h_,'Interpreter','none');
% xlabel(ax_,''); % remove x label

% ylabel(ax_,'');
% remove y label

Additionally you can calculate the proximal and distal aponeurosis.

引用格式

Philipp Schenk (2024). Calculation of fascicle length and pennation angle (https://www.mathworks.com/matlabcentral/fileexchange/41106-calculation-of-fascicle-length-and-pennation-angle), MATLAB Central File Exchange. 检索时间: .

MATLAB 版本兼容性
创建方式 R2011a
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Linear and Nonlinear Regression 的更多信息
标签 添加标签

Community Treasure Hunt

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

Start Hunting!
版本 已发布 发行说明
1.3.0.0

error discovered

1.2.0.0

added polynomtestlin/22 and 33 code

1.0.0.0