当前位置:  开发笔记 > 开发工具 > 正文

MATLAB错误:未定义的函数或方法X表示'double'类型的输入参数

如何解决《MATLAB错误:未定义的函数或方法X表示'double'类型的输入参数》经验,为你挑选了2个好方法。

我是Matlab的新用户,请你帮忙:
我在.M文件中有以下代码:

function f = divrat(w, C)
S=sqrt(diag(diag(C)));
s=diag(S);
f=sqrt(w'*C*w)/(w'*s);

我已将此文件(divrat.M)存储在正常的Matlab路径中,因此我假设Matlab将在启动时读取该函数,因此该函数应该可以使用.

但是,当我输入

>> divrat(w, C)

我收到以下错误

??? 未定义的函数或方法'divrat'表示'double'类型的输入参数.

什么是告诉我的错误消息,我在代码或函数调用中看不到任何错误?



1> 小智..:

当函数不在MATLAB路径或pwd中时,会出现此错误.

首先,确保您能够使用以下方法找到该功能:

>> which divrat
c:\work\divrat\divrat.m

如果它返回:

>> which divrat
'divrat' not found.

它不在MATLAB路径或PWD中.

其次,divrat使用该PATH命令确保包含的目录位于MATLAB路径上.可能是您认为在路径上的目录实际上不在路径上.

最后,请确保您没有使用"私人"目录.如果divrat位于名为private的目录中,则可以通过父目录中的函数访问它,但不能从MATLAB命令行访问:

>> foo

ans =

     1

>> divrat(1,1)
??? Undefined function or method 'divrat' for input arguments of type 'double'.

>> which -all divrat
c:\work\divrat\private\divrat.m  % Private to divrat



2> sundar - Rei..:

正如其他人所指出的那样,这很可能是函数文件路径不在Matlab的"路径"中的问题.

验证这一点的一种简单方法是在编辑器中打开您的功能,然后F5按键.这将使编辑器尝试运行该文件,如果文件不在路径中,它将提示您一个消息框.选择Add to Path那个,你一定要好好去.

一方面注意:在上述过程结束时,Matlab命令窗口会给出一个错误,说明参数丢失:显然,当我们尝试从编辑器运行时,我们没有提供任何参数.但是从现在开始,您可以使用命令行中的函数给出正确的参数.

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有