【发布时间】:2015-01-20 22:32:45
【问题描述】:
我在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'.
我在 Windows 上“我的文档”的主(默认)matlab 文件夹中创建了脚本。有人说这是因为当前目录不好。但我的脚本文件只是在“我的文档”中。有什么帮助吗?
【问题讨论】:
-
inverse不是 Matlab 函数。 -
只是另一条评论。由于数值不稳定,单独计算逆通常是一个坏主意。你绝对应该使用@horchler 所说的
mldivide。约翰库克给出了一个很好的论据来解释为什么你应该避免找到逆。在这里阅读:johndcook.com/blog/2010/01/19/dont-invert-that-matrix -
感谢 horchler 和 rayryeng 的出色解释解决了我的问题。
标签: matlab