我已经看过链接Error using fzero in Matlab: Undefined function or method 'det' for input arguments of type 'function_handle' 但我无法用这个链接来解决我的问题。我在MATLAB中使用fi对象。我有一个矩阵T_1(2个交叉2),它被转换为fi(T_1,1,32,26,fimath),即32个带符号的二进制数,26是二进制点的位置。现在,当我尝试执行以下代码时
T = mat_G/(mat_sqrt_D)
T_1=fi(T./mat_E,1,32,26,fimath);
multiplier=1/(2*sqrt(det(var_oldS))*abs(det(T_1)));
出现以下错误
Undefined function 'det' for input arguments of type 'embedded.fi'.
所以有人能告诉我如何解决它。
P.S变量var_oldS,mat_G,mat_E,mat_qrt_D具有相同的fi对象属性,即fi(variable_name,1,32,26,fimath)
答案 0 :(得分:0)
如果您查看det
的文档,则表示输入必须是单输入或双输入。可能不支持固定点。由于您的矩阵具有固定大小4,因此更换函数很简单:
det2=@(M)M(1)*M(4)-M(2)*M(3)
然后使用det2而不是det。