目录

1 概述

2 问题所在

3 《葵花宝典》——解决策略

3.1 验证函数或变量名称的拼写

3.2 编写的文件名需要和函数名一致

  3.3 验证输入是否符合函数语法

3.4 确保安装了必要的工具箱并且版本正确

3.5 文件路径与系统当前路径不匹配 

3.6 确认许可证有效

3.7 命令窗口中直接写函数名

1 概述

Matlab中这个破问题困惑了很多初学者,当然也困惑了很多高手,高手,高高手。

2 问题所在

当在 MATLAB® 中使用函数或变量时,可能会遇到以下错误消息或类似的消息:

未定义函数或变量 'x'。比如我下面这个鬼东西:

这些错误通常指示 MATLAB 在当前目录或搜索路径中找不到特定的变量或 MATLAB 程序文件。

下面我们来一起解决这个问题,看看你的属于哪个问题。


3 《葵花宝典》——解决策略

3.1 验证函数或变量名称的拼写

最常见的原因之一是函数或变量名称拼写错误。尤其对于较长的名称或包含相似字符(例如,字母 l 和数字 1)的名称,很容易出错而不易察觉。

通常,如果您拼错 MATLAB 函数的名称,命令行窗口中将显示一个建议的函数名称。例如,由于以下命令在函数名称中包含大写字母,因此该命令将会失败。

accumArray
Undefined function or variable 'accumArray'.Did you mean:
>> accumarray

此时,按 Enter 执行建议的命令,或按 Esc 取消该命令。


3.2 编写的文件名需要和函数名一致

即如果编写的函数为:

function [rt,f,g] = twodsin(A,u0, ve,M,N)

那么文件名就需要设置为twodsin.m
错误的命名方法:

修改之后:

如果您遇到此问题,请更改函数名称或文件名,使它们保持相同。

要找到定义此函数的文件,请使用 MATLAB 查找文件实用工具,如下所示:

  1. 主页选项卡上的文件部分中,点击

    查找文件

  2. 查找具有以下名称的文件下,输入 *.m

  3. 查找包含以下文本的文件下,输入函数名称。

  4. 点击查找按钮


3.3 验证输入是否符合函数语法

通常使用函数语法调用对象方法:例如 method(object,inputs)。也可以使用圆点表示法来调用它们:例如 object.method(inputs)。一个常见的错误是混合使用这些语法。例如,您可能使用函数语法调用该方法,但却提供后跟圆点表示法语法的输入且未指定对象作为输入:例如 method(inputs)。为了避免这种情况,在调用对象方法时,请确保首先指定对象,或者通过函数语法的第一个输入,或者通过圆点表示法的第一个标识符。


3.4 确保安装了必要的工具箱并且版本正确

如果您无法使用 MATLAB 或其工具箱中的内置函数,请确保安装了该函数且版本正确。

如果您不知道哪个工具箱包含所需的函数,请在 https://www.mathworks.com/help 中搜索函数文档。工具箱名称显示在函数参考页的顶部。或者,如需识别函数所依赖的工具箱的步骤,请参阅确定程序依赖项。

当您知道函数所属的工具箱后,请使用 ver 函数查看在运行 MATLAB 的系统上安装了哪些工具箱。ver 函数会显示当前已安装的所有 MathWorks® 产品的列表。如果您可以在 ver 显示的输出中找到所需的工具箱,则表明该工具箱已安装。如果找不到,您需要安装它才能使用。如果找不到,您需要安装它才能使用。有关安装 MathWorks 产品的帮助,请参阅。

MATLAB 搜索路径是文件系统中所有文件夹的子集。MATLAB 使用搜索路径来高效地定位用于 MathWorks 产品的文件。有关详细信息,请参阅什么是 MATLAB 搜索路径?。

如果您尝试使用的函数是工具箱的一部分,则使用 ver 验证该工具箱是否可用。

由于 MATLAB 将工具箱信息存储在缓存文件中,因此您需要先更新此缓存,然后再重置路径。

  1. 主页选项卡上的环境部分中,点击

    预设

    此时将显示“预设项”对话框。

  2. 在 MATLAB > 常规页上,选择更新工具箱路径缓存

  3. 主页选项卡上的环境部分中,选择

    设置路径

    此时将打开“设置路径”对话框。

  4. 选择默认

    此时将打开一个很小的对话框,警告您如果继续,将会丢失当前路径设置。如果您决定继续,请选择

运行 ver 以查看工具箱是否已安装。如果未安装,则您可能需要重新安装此工具箱以使用该函数。有关安装工具箱的详细信息,请参阅 How do I install additional toolboxes into an existing installation of MATLAB。

当 ver 显示您的工具箱后,请运行以下命令以查看能否找到相应函数:

which -all <functionname>

将 <functionname> 替换为函数的名称。如果 MATLAB 找到您的函数文件,它会向您显示该文件的路径。您可以使用 addpath 函数将该文件添加到路径中。如果未找到,请确保安装了必要的工具箱并且版本正确。


3.5 文件路径与系统当前路径不匹配

大家发现,文件路径是“C:\User\2079\encrypt.m”,而MATLAB系统路径是“D:\ruanjian\Matlab \bin”,很显然文件路径与系统当前路径是不匹配的。这时,我们将我们的M文件(另存为)存储到“D:\ruanjian\Matlab \bin”路径下,这时我们惊奇地发现问题解决啦!
简单来讲,要想运行成功,前提是文件路径与系统当前路径必须一致。


3.6 确认许可证有效

如果您无法使用 MATLAB 工具箱中的内置函数,并且确认工具箱已安装,请确保您拥有该工具箱的有效许可证。使用 license 可显示当前有效许可证。有关管理许可证的其他支持,请参阅管理您的许可证。


3.7 命令窗口中直接写函数名

这种情况除非已经在函数文件中定义了函数名才会避免。否则没有函数文件直接写这条命令语句肯定是不可行的。

最后,给出排除了所有报错可能,正确得到运行结果:

未定义的函数或变量【一文讲透】(Matlab)相关推荐

  1. Matlab:解决错误:未定义的函数或变量

    Matlab:解决错误:未定义的函数或变量 验证函数或变量名称的拼写 验证输入是否符合函数语法 确保函数名称与文件名匹配 确保安装了必要的工具箱并且版本正确 验证用于访问函数工具箱的路径 确认许可证有 ...

  2. cvx_begin未定义其函数或变量

    [未定义cvx_begin函数或变量](https://blog.csdn.net/weixin_40148024/article/details/91879675)

  3. php mssql 错误,PHP致命错误:调用未定义的函数mssql_connect()

    PHP致命错误:调用未定义的函数mssql_connect() 我从来没有使用过PHP,并试图连接到运行IIS7和PHP5.3的Windows机器上的SQL Server 2008实例. 我已经从C: ...

  4. js打印线程id_一文讲透“进程,线程和协程”

    一文讲透"进程,线程和协程" 本文从操作系统原理出发结合代码实践讲解了以下内容: 什么是进程,线程和协程? 它们之间的关系是什么? 为什么说Python中的多线程是伪多线程? 不同 ...

  5. 双线macd指标参数最佳设置_一文讲透双线MACD指标及其实战运用

    原标题:一文讲透双线MACD指标及其实战运用 船长的舍得交易体系技术理论模型中,我们要用到两大指标,分别是均线系统和双线MACD指标. 很多小伙伴都喜欢用双线MACD这个指标,但是90%的人都不知道其 ...

  6. 一文讲透植物内生菌研究怎么做 | 微生物专题

    内容导览 1. 隐秘而强大的植物内生菌 2. 难以区分的植物内生菌 3. 更好的植物内生细菌测序方法 3.1 LNA-16S测序鉴定内生细菌原理 3.2 LNA-16S测序鉴定内生细菌占比高达99% ...

  7. 10自带sftp服务器_一文讲透FTP和SFTP的区别

    阅读本文约需要10分钟,您可以先关注我们或收藏本文,避免下次无法找到. FTP和SFTP都是文件传输协议,我们知道FTP使用的是20和21端口,SFTP使用的是22端口.另外,SFTP前面的S应该是S ...

  8. 【敏捷开发】一文讲透敏捷管理中的DoR、DoD与AC

    文章目录 一.需求侧:DoR 案例: DoR是什么? 如何建立DoR的标准? DoR样例 1.需求 2.交互 3.架构 二.研发侧:DoD DoD是什么? 如何建立DoD的标准? DoD样例 三.用户 ...

  9. 一文讲透『大神修炼心法』!35岁让自己过的越来越好!

    Cocos 的老铁,如果你这几天没有被麒麟子给卷到?那说明你还没有真正进入 Cocos 圈子里来.为什么这么说呢?看下面. 3月1号 23:57 | 2800+字 麒麟子全方位解读 Cocos Cyb ...

最新文章

  1. python画小猪佩奇
  2. cpu安装_CPU是AMD的,老台式电脑可以加装固态硬盘安装Win10系统吗?
  3. 计算机网络应用和计算机应用有什么区别,什么是计算机网络技术?和计算机应用技术区别...
  4. fastjson反序列化漏洞_漏洞预警Fastjson再爆反序列化代码执行漏洞;星巴克被发现存在信息泄露风险...
  5. 复旦大学肖仰华教授:知识图谱落地的基本原则与最佳实践
  6. nv4_disp.dll 蓝屏
  7. ABP框架 v2.7.0已经发布!
  8. next_permutation算法(基于交换)
  9. strocli64 源码_storcli 简易使用介绍
  10. c++内联函数解析(inline)
  11. DXperience中文视频教程(下)
  12. 4、EPM ——Smart View介绍和使用
  13. 多媒体计算机主机系统,多媒体计算机系统的组成
  14. python 3.8.2安装教程
  15. 如何编写一份合格的架构设计文档
  16. Ubuntu_搜狗输入法安装
  17. Ionic5项目android打包流程
  18. python开发板 树莓派_树莓派3代B+型 Raspberry Pi 3b+电脑linux开发板python编程
  19. 【烙铁使用规范】—— 延长无铅手工焊接工艺中烙铁头的寿命
  20. win10服务器密码怎么修改,教你windows10密码更改

热门文章

  1. 激光雷达(一)——知名激光雷达公司
  2. Vue系列之插槽(slot)详解
  3. 基于MT7688AN模块开发板WiFi路由方案无线音频传输WiFi音箱测试
  4. python爬取豆瓣图书榜单 并存放数据库心得
  5. Mac电脑中的隐藏资源库在哪
  6. 智能小车c语言pid算法,智能小车pid算法
  7. 【openOcd学习】
  8. upc 兔 最小生成树
  9. 面试问题总结之数据库存储过程SELECT INTO
  10. 前端修改服务器cookie,前端中怎样设置cookie