X
및 Y
으로 표시된 2 개의 변수를 반환하는 프로그램이 있습니다. X
의 크기는 3 x 5이고 Y
은 3 x 3입니다. 값이 무한대인지 확인하고 싶지만 Matlab은 그렇게하지 않습니다. 일반적으로 이것은 어떤 행렬에 대해서도 수행 할 것이지만이 코드는 그림에 표시된 행렬에 대해 작동하지 않습니다. 적절한 방법은 무엇입니까? 전체 행렬 NaN
경우Matlab에서 무한 값을 확인하는 방법
clear all
Y = [
NaN + NaNi NaN + NaNi NaN + NaNi
NaN + NaNi NaN + NaNi NaN + NaNi
NaN + NaNi NaN + NaNi NaN + NaNi];
if (isnan(Y))
disp(' values in Y are infinity')
end
X = 1.0e+017 *[
NaN + NaNi NaN + NaNi NaN + NaNi NaN + NaNi -7.8517 - 0.0000i
NaN + NaNi NaN + NaNi NaN + NaNi NaN + NaNi -3.9259 - 0.0000i
NaN + NaNi NaN + NaNi NaN + NaNi NaN + NaNi -1.9629 - 0.0000i];
if (isnan(X))
disp(' values in X are infinity')
end
코드를 실행했을 때'정의되지 않은 함수 또는 변수 'NaNi'가 발생했습니다. 또한이 연산은 3 차원 인 다른 행렬, 즉 X1 (:, :, k) = X에 행렬 'X'를 저장하려는 경우에 적합합니다. 'k = 2'에서'X = X1 (:, :, k-1) '과 같은'X1'의 값을 바꾸고 싶습니다. '오류를 제거하는 방법과이 작업을 수행하는 방법을 도와 주시겠습니까 – SKM
@SKM 이것은 "NaNi"만 입력했기 때문입니다. 이것은 MATLAB이 표현을 표시하는 방식이지만, 그렇게 쓰지는 못합니다. 'X = NaN + NaN * i' ('i'는 작업 공간의 변수가 아닙니다)와 같은 것을해야합니다. X에 하나의 NAN 요소가 있는지 검사하고 싶다면'any'를 사용해야합니다 :'if anyan (X)) disp ('values ...'); end' – Adiel
'Y' 행렬은 3 행과 3 행을 가지고 있습니다. 각 원소는'NaN + NaNi'와 같습니다. 그것이 사실이라면 어떤 오류도 없어야합니다. 내 코드를 확인 했어. NaNi 자체가 matlab에 인식되지 않을 것이라고 생각하십시오. 'NaN'(즉, 'NaN + NaNi')이 있어야합니다. 두 번째 질문에 오류 –