문제

사용할 때 NaN으로 나타나는 빈 셀이 많은 파일이 있습니다. cell2mat, 하지만 문제는 평균값을 구해야 할 때 NaN에 오류가 표시되므로 이 작업을 수행할 수 없다는 것입니다.Excel에서는 NaN 값을 간과하는데 MATLAB에서도 동일한 작업을 수행하려면 어떻게 해야 합니까?

또한 다음을 사용하여 파일을 작성하고 있습니다. xlswrite:

xlswrite('test.xls',M);

1을 제외한 모든 행에 데이터가 있습니다.어떻게 작성합니까?

M(1,:) = ('time', 'count', 'length', 'width')

즉, 나는 원한다 M(1,1)='time', M(1,2)='count', 등등.나한테서 데이터가 있어 M(2,1) 에게 M(10,20).어떻게 해야 하나요?

도움이 되었습니까?

해결책

모든 NaN과 무한대를 제거하려면 'isfinite' 함수를 사용하세요.

A=A(무한(A))

%컬럼 ​​헤더를 포함하는 셀 배열을 만듭니다. 열 헤드러 = { '열 1', '열 2', '열 3', '열 4', '열 5', ''};

%컬럼 ​​헤더를 먼저 쓰기 먼저 XLSWRITE ( 'myFile1.xls', columnheader);

% 컬럼 헤더 바로 아래에 데이터를 XLSWRITE ( 'newfile.xls', M, 'Sheet1', 'A2');

다른 팁

AP가 정확하게 지적한 것처럼, 함수를 사용할 수 있습니다 isfinite 매트릭스에서 유한 한 값 만 찾고 유지합니다. 기능을 사용할 수도 있습니다 isnan. 그러나 매트릭스에서 값을 제거하면 행렬을 행 또는 열 벡터로 재구성하는 의도하지 않은 결과가 발생할 수 있습니다.

>> mat = [1 2 3; 4 NaN 6; 7 8 9]  % A sample 3-by-3 matrix

mat =

     1     2     3
     4   NaN     6
     7     8     9

>> mat = mat(~isnan(mat))  % Removing the NaN gives you an 8-by-1 vector

mat =

     1
     4
     7
     2
     8
     3
     6
     9

또 다른 대안은 다음과 같은 기능을 사용하는 것입니다 통계 도구 상자 (액세스 할 수있는 경우). NAN 값을 포함하는 행렬을 처리합니다. 평균 복용을 언급하기 때문에 체크 아웃 할 수 있습니다. nanmean:

>> mat = [1 2 3; 4 NaN 6; 7 8 9];
>> nanmean(mat)

ans =

     4     5     6     % The column means computed by ignoring NaN values



편집하다: 사용에 대한 추가 질문에 답변합니다 xlswrite,이 샘플 코드는 데이터를 작성할 수있는 한 가지 방법을 설명해야합니다.

C = {'time','count','length','width'};  % A cell array of strings
M = rand(10,20);                        % A 10-by-20 array of random values
xlswrite('test.xls',C);           % Writes C to cells A1 through D1
xlswrite('test.xls',M,'A2:T11');  % Writes M to cells A2 through T11

통계 도구 상자에는 NAN 값을 다루기위한 몇 가지 통계 기능이 있습니다. Nanmean, Nanmedian, Nanstd, Nanmin, Nanmax 등을 참조하십시오.

NAN을 SO와 같은 임의의 숫자로 설정할 수 있습니다.

mat(isnan(mat))=7 // my lucky number of choice. 

너무 늦을 수도 있지만 ...

x = [1 2 3; 4 inf 6; 7 -inf NaN];
x(find(x == inf)) = 0; //for inf
x(find(x == -inf)) = 0; //for -inf
x(find(isnan(x))) = 0; //for NaN
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top