I MATLAB에 다음 코드를 가지고,하지만 난 역 기능을 사용하여 이상한 오류가 발생합니다 : 내가 메인 (기본값)에서 스크립트를 생성 한 MATLAB 폴더를matlab에 역 함수가 정의되어 있지
x = load('E:\myFile1.dat');
y = load('E:\myFile2.dat');
ones = ones(100,1);
X = [x,ones];
XtX = X'*X;
XtXinv = inverse(XtX);
XtY = x' * y;
w = XtXinv * XtY;
??? Undefined function or method 'inverse' for input arguments of
type 'double'.
을 " 내 문서 "창문에. 어떤 사람들은 나쁜 현재 디렉토리 때문에 그것을 말했다. 하지만 내 스크립트 파일은 "내 문서"에 있습니다. 이것에 대한 도움이 필요하십니까?
'inverse'는 Matlab 함수가 아닙니다. – David
그러나 행렬 역수를 계산하려는 경우 ['inv'] (http://www.mathworks.com/help/matlab/ref/inv.html)입니다. 대신에''mldivide' (http://www.mathworks.com/help/matlab/ref/mldivide.html)를 사용하여'w = XtX \ XtY;'를 시도해 볼 수도 있습니다. 또한,'ones' 함수를 변수로 재정의하는 것은 나쁜 생각 일 수 있습니다. – horchler
또 다른 코멘트. 자체적으로 역수를 계산하는 것은 수치 적 불안정성 때문에 일반적으로 나쁜 생각입니다. @horchler가 말하는'mldivide'를 꼭 사용해야합니다. 존 쿡 (John Cook)은 역관계를 찾는 것을 피해야하는 이유에 대해 훌륭한 논거를 제시합니다. 여기를 읽으십시오 : http://www.johndcook.com/blog/2010/01/19/dont-invert-that-matrix/ – rayryeng