I am trying to perform repeated measures ANOVA using the fitrm function, but keep getting the following error:
*Error using eig* *Input matrix contains NaN or Inf.*
% Data collected from 4 participants in 3 locations. % Each row is a participant, each column is a location measurements = [ 112.7258 92.2979 82.5488; 123.7502 113.2852 84.8053; 106.8964 93.9526 70.9359; 107.3634 85.2672 65.7928] P_Name = ['A' 'B' 'C' 'D']' % participant name %Create a table, Data comes first, Variable names second t = table(P_Name,measurements(:,1),measurements(:,2),measurements(:,3),'VariableNames',{'Participant','L1','L2','L3'}) % Create a location variable for the measurements Location = table([1 2 3]','VariableNames',{'Location'}) % Fit repeated measures model rm = fitrm(t,'L1-L3~Participant','WithinModel',Location)
Any help is greatly received.
The error you're encountering typically occurs when there are missing (NaN
) or infinite (Inf
) values in the input data matrix, which prevents MATLAB from calculating eigenvalues as part of the statistical analysis.
Here are some steps to help you troubleshoot and resolve the issue:
NaN
or Inf
ValuesBefore using the fitrm
function, ensure your data does not contain missing or infinite values. You can check your data table as follows:
% Check for NaN or Inf in your data any(isnan(table2array(yourTable)), 'all') % Replace 'yourTable' with your data table any(isinf(table2array(yourTable)), 'all')
If these checks return true
, it means your data contains problematic values. You can either remove or impute these values, depending on the situation.
Ensure your data is formatted correctly for fitrm
. Typically, the data should be in a table where:
For example:
data = table(... {'P1'; 'P2'; 'P3'; 'P4'}, ... [1.2, 1.3, 1.4, 1.5]', ... [2.1, 2.3, 2.5, 2.6]', ... [3.4, 3.6, 3.8, 4.0]', ... [4.5, 4.7, 4.8, 5.0]', ... 'VariableNames', {'Participant', 'L1', 'L2', 'L3', 'L4'});
Make sure your formula for fitrm
matches your data. For example:
rm = fitrm(data, 'L1-L4 ~ 1', 'WithinDesign', table([1; 2; 3; 4], 'VariableNames', {'Location'}));
Here's a minimal example that demonstrates proper formatting:
% Create example data data = table(... {'P1'; 'P2'; 'P3'; 'P4'}, ... [1.2; 1.3; 1.4; 1.5], ... [2.1; 2.3; 2.5; 2.6], ... [3.4; 3.6; 3.8; 4.0], ... [4.5; 4.7; 4.8; 5.0], ... 'VariableNames', {'Participant', 'L1', 'L2', 'L3', 'L4'}); % Define within-subjects factors within = table({'L1'; 'L2'; 'L3'; 'L4'}, 'VariableNames', {'Location'}); % Fit repeated measures model rm = fitrm(data, 'L1-L4 ~ 1', 'WithinDesign', within); % Display results ranova(rm)
After running the above example, verify that no errors occur. If this works but your original data fails, you can iteratively compare the two to identify the issue.
NaN
values with group means or other imputation methods before fitting the model.If you're still encountering issues, feel free to share more details or your dataset (an anonymized sample), and I can assist further!
Matlabsolutions.com provides guaranteed satisfaction with a
commitment to complete the work within time. Combined with our meticulous work ethics and extensive domain
experience, We are the ideal partner for all your homework/assignment needs. We pledge to provide 24*7 support
to dissolve all your academic doubts. We are composed of 300+ esteemed Matlab and other experts who have been
empanelled after extensive research and quality check.
Matlabsolutions.com provides undivided attention to each Matlab
assignment order with a methodical approach to solution. Our network span is not restricted to US, UK and Australia rather extends to countries like Singapore, Canada and UAE. Our Matlab assignment help services
include Image Processing Assignments, Electrical Engineering Assignments, Matlab homework help, Matlab Research Paper help, Matlab Simulink help. Get your work
done at the best price in industry.