필터 지우기
필터 지우기

The result of anovan is "NaN".

조회 수: 9 (최근 30일)
Kaminosono Shougo
Kaminosono Shougo 2023년 1월 17일
답변: Divit 2024년 7월 12일 7:58
I have a program that reads in 4 data, calculates the slope, and then applies the slope to an analysis of variance, but the result is "NaN"." I have defined the data as continuous variables with the "continuous" option, but I wonder if there is a problem.

답변 (1개)

Divit
Divit 2024년 7월 12일 7:58
Hi Kaminosono,
I understand that you are getting 'NaN' values in in your 'annovan' calculation. I ran the attached MATLAB script and found that the reason for these 'NaN' results might be due to '-Inf' values in your 'sloop' array.
You can replace the '-Inf' values with 'NaN' in your 'sloop' array by inserting the following line after your calculation of the 'sloop' array. This will handle the '-Inf' values.
sloop(isinf(sloop)) = NaN;
Here is a complete version of the code:
dataFileName1 = 'exp3_sloop_parameter';
dataFileID1 = fopen([dataFileName1,'.txt'],'r');
if (dataFileID1 == -1)
error('data file not exist');
end
formatSpec = '%f';
y = fscanf(dataFileID1,formatSpec);
fclose(dataFileID1);
outFileID3=fopen(['invidi_sloop','.txt'],'w');
if (outFileID3 == -1)
error('cannot open output file');
end
outFileID4=fopen(['invidi_para','.txt'],'w');
if (outFileID3 == -1)
error('cannot open output file');
end
indivi=12; %subject_number
y = reshape(y,[4,3,indivi]);
sloop = zeros(3);
%/ j=1:ek j=2:jp j=3:tw
% sloop =(y2-y1)/(x2-x1)
for j =1:indivi
for i =1:3
sloop(i,j) = (y(4,i,j)-y(2,i,j))/(y(3,i,j)-y(1,i,j));
end
end
sloop(isinf(sloop)) = NaN;
y = reshape(y,[4,3*indivi]);
sloop = reshape(sloop,[indivi*3,1]);
sloop;
for i = 1:indivi*3
fprintf(outFileID3,"%f\n",sloop(i,1));
fprintf(outFileID4,"%f\n%f\n%f\n%f\n%f\n\n",y(1,i),y(2,i),y(3,i),y(4,i),sloop(i,1));
end
g1 = [1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3]; %文化
g2 = [1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12,12]; %個人
g3 = [1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3];%刺激
p = anovan(sloop,{g1,g2,g3},'model',[0 0 1],'varnames',{'culture','individual','stimuli'},'continuous',[1 2 3]);

카테고리

Help CenterFile Exchange에서 Analysis of Variance and Covariance에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by