精华内容
下载资源
问答
  • MATLAB报错:未定义函数或变量MATLAB报错:未定义函数或变量常见错误原因我解决方案 MATLAB报错:未定义函数或变量 最近准备数学建模比赛,学习MATLAB入门遇到了个问题:未定义函数或变量 'myGcd'。 谷歌了下试了...

    MATLAB报错:未定义函数或变量

    最近准备数学建模比赛,学习MATLAB入门遇到了个问题:未定义函数或变量 'myGcd'
    MATLAB报错图片
    谷歌了下试了几个方案还是没解决。
    参考官方的文档也没发现哪里有问题(其实是我一开始没看到)
    小白真心累。

    常见错误原因

    先看看MATLAB官方文档

    这些错误通常指示 MATLAB 在当前目录或搜索路径中找不到特定的变量或 MATLAB 程序文件。其根本原因可能是下面这些原因中的一个:

    • 函数的名称拼写错误。
    • 函数名称和包含函数的文件的名称不相同。
    • 未安装函数所属的工具箱。
    • 函数的搜索路径已更改。
    • 函数是您没有许可证的工具箱的一部分。

    遇到此类错误时,请按照本节所述步骤来解决问题。

    1. 验证函数名称的拼写
    2. 确保函数名称与文件名匹配
    3. 确保安装了工具箱
    4. 验证访问函数所用的路径

    这里不做具体解释,详情请移步官网:MATLAB-调用函数时的常见错误

    我的解决方案

    当时有点急了,文档都是跳着看(真的要认真看文档啊!!!),我先是试了1,4步骤,结果都没解决问题。
    尝试步骤4图片
    最后沉下心来,看了下自己写的几个脚本,其中写了两个函数,一个是myFun,另一个是myGcd,我在想为什么我的myFun就能用,我的myGcd就不行。看着看着发现了端倪!我的myGcd函数名称和文件名不一样!也就是MATLAB官方给的帮助文档里的第2条。

    把文件名改成和函数名一样就正常使用,没有问题了!
    问题解决图片

    小问题多耽误半天时间,哎,希望我的经历有帮到你!

    展开全文
  • A=[0 -1 4;9 -14 25;-34 49 64]; B=zeros(3,3);...但是我在第一次写时候总是出现未定义函数或变量B so 一个可能实用方法 即首先定义B为一个三行三列零矩阵 注意 一定是B=A而非A=B 如有不对 欢迎指正 ...

    A=[0 -1 4;9 -14 25;-34 49 64];
    B=zeros(3,3);
    for i=1:3
    for j=1:3
    B(i,j)=A(i,j);
    end
    end
    disp(B)

    复制j矩阵A中内容到B中
    其实思路很简单
    但是我在第一次写的时候总是出现未定义函数或变量B
    so 一个可能实用的方法
    即首先定义B为一个三行三列的零矩阵(全1矩阵等类似的特殊矩阵也可以)
    注意 一定是B=A而非A=B

    如有不对 欢迎指正

    展开全文
  • %每码元对应载波信号 ; margin-right:0pt">Akk=sigexpand(Ak,B_sample);         %码元扩展 ; margin-right:0pt">temp=conv(Akk,gt);      &...
  • 使用MATLAB绘制开环对数幅频渐近特性曲线过程,出现“未定义函数或变量 ‘bd_asymp’”问题,下面给出一个参考解决方案。 展示出现问题 问题解决方案 a.在命令行输入"edit bd_asymp",会显示bd_asymp...

    使用MATLAB绘制开环对数幅频渐近特性曲线过程中,出现“未定义函数或变量 ‘bd_asymp’”的问题,下面给出一个参考的解决方案。

    1. 展示出现的问题
      出现问题
    2. 问题的解决方案
      a.在命令行中输入"edit bd_asymp",会显示bd_asymp文件不存在,选择"是",新建.m文件。
      解决方案
      b.在bd_asymp.m文件中粘入bd_asymp函数的源代码,保存文件。
      解决方案
      c.测试是否可以绘制开环对数幅频渐近特性曲线,问题解决。
      解决方案
    3. 附:bd_asymp源代码
    function[wpos,ypos]=bd_asymp(G,w)
    G1=zpk(G);
    wpos=[];
    pos1=[]; 
    if nargin==1,w=freqint2(G);
    end
    zer=G1.z{1}; pol=G1.p{1};
    gain=G1.k;
    for i=1:length(zer);
        if isreal(zer(i))
            wpos=[wpos,abs(zer(i))];
            pos1=[pos1,20];
        else
            if imag(zer(i))>0
                wpos=[wpos,abs(zer(i))];
                pos1=[pos1,40];
            end
        end
    end
    for i=1:length(pol);
        if isreal(pol(i))
        wpos=[wpos,abs(pol(i))];
        pos1=[pos1,-20];
        else
            if imag(pol(i))>0
                wpos=[wpos,abs(pol(i))];
                pos1=[pos1,-40];
            end
        end
    end
    wpos=[wpos w(1) w(length(w))];
    pos1=[pos1,0,0];
    [wpos,ii]=sort(wpos);
    pos1=pos1(ii);
    ii=find(abs(wpos)<eps); 
    kslp=0;
    w_start=1000*eps;
    if length(ii)>0
        kslp=sum(pos1(ii));
        ii=(ii(length(ii))+1):length(wpos);
        wpos=wpos(ii);
        pos1=pos1(ii);
    end
    while 1
        [ypos1,pp]=bode(G,w_start);
        if isinf(ypos1),w_start=w_start*10;
        else break;
        end
    end
    wpos=[w_start wpos];
    ypos(1)=20*log10(ypos1);
    pos1=[kslp pos1];
    for i=2:length(wpos)
        kslp=sum(pos1(1:i-1));
        ypos(i)=ypos(i-1)+kslp*log10(wpos(i)/wpos(i-1));
    end
    ii=find(wpos>=w(1)&wpos<=w(length(w)));
    wpos=wpos(ii);
    ypos=ypos(ii);
    
    展开全文
  • 脚本文件很简单,就是由一堆命令构成,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运行键运行就行,不存在出现诸如“未定义函数或变量问题; 函数文件就相对复杂一些,第一...

    MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件。

    脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运行键运行就行,不存在出现诸如“未定义函数或变量”的问题;
    函数文件就相对复杂一些,第一行为function,比如说像function result=encrypt(n)这样的文件,函数名与文件名是一致的,在命令窗口里输入encrypt(n),n是运行参数,按回车即运行。
    注:命令窗口中若想多行输入,每另起一行时按“Shift+Enter”键即可。

    问题提出

    在函数文件中,很可能会出现如下图这样的问题:
    在这里插入图片描述

    在本问题提供解决办法前,整个过程先引入一个实例可以更好地说明这个问题:
    :从键盘输入一个4位数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;再把第一位与第三位交换,第二位与第四位交换。

    函数文件:

    function result = encrypt(n)
    a=fix(n/1000);
    b=rem(fix(n/100),10);
    c=rem(fix(n/10),10);
    d=rem(n,10);
    a=rem((a+7),10);
    b=rem((b+7),10);
    c=rem((c+7),10);
    d=rem((d+7),10);
    result=c*1000+d*100+a*10+b;
    end
    

    命令窗口:

    >> n=input('请输入一个四位整数');
    result=encrypt(n)
    

    运行结果截图:
    在这里插入图片描述
    我们发现:咦?代码明明没问题呀,为什么弹出“未定义函数或变量’encrypt’”这种问题呢。

    下面就说明一下这个问题的由来和解决办法:

    解决办法

    情况一:文件路径与系统当前路径不匹配

    在这里插入图片描述
    大家发现,文件路径是“F:\encrypt.m”,而MATLAB系统路径是“E:\software\MATLAB R2018awin\MATLAB\bin”,很显然文件路径与系统当前路径是不匹配的。这时,我们将我们的M文件(另存为)存储到“E:\software\MATLAB R2018awin\MATLAB\bin”路径下,这时我们惊奇地发现问题解决啦!
    简单来讲,要想运行成功,前提是文件路径与系统当前路径必须一致。

    情况二:函数名与文件名不一致

    在这里插入图片描述
    这张图就是文件名与函数名不一致的情况,这也会导致“未定义函数或变量’encrypt’”这种问题的出现,解决办法就是把文件名改成“encrypt.m”或者将函数名改为hello(n)即可。这里建议将文件名改为函数名,因为这样你会发现你省去了修改命令窗口中函数名的麻烦。
    注:所有的符号必须是英文状态下的喔,不然会报错的。

    情况三:命令窗口中直接写函数名

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

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

    在这里插入图片描述

    OK!以上就是关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法的总结。希望能帮助到更多小伙伴!

    大家有什么想法或者发现新的问题及解决办法别忘了在评论区告诉我哦!

    欢迎评论,感谢阅读!
    END

    展开全文
  • 如果是第一次学习JavaScript,或许你会对此感到疑惑:在JavaScript变量只有全局变量和局部变量两种,而不像C语言和Java语言,还有块变量。其实,只要你掌握了JavaScript变量提升知识点,就理解了变量的作用域...
  • 光这些代码,4个地方需要在其他函数中预先定义初始化1、tm=tm+1 ,当然tm不初始化也没问题,默认初始值为02、N=A(J) ,这里A()没有初始化会报错3、LoadPicture(T2(N)) ,这里T2()没有初始化也会报错4、Label1=L1(A...
  • 最近课程设计做MATLAB GUI数字图像处理,自己在设置大小时选了工具栏---->GUI 选项—>调整大小方式—>其他(使用SizeChangedFcn)选项,点击确定并保存figure...未定义函数或变量 'figure1_SizeChange
  • 背景介绍:由于 MATLAB 自身的语法调整,关于 MATLAB 符号运算网上不少教程中的内容在 MATLAB 2019a 以及更高版本上要稍做改动才能调通。但往往去找教程的都是初学者,不知道怎么做这个“稍微的改动”。Sugar 下面就...
  • 出现标题所说问题就是因为缺少工具箱缺少Mapping Toolbox 可以输入ver来检查,我此前的MATLAB版本是2015b,在安装时不论正版或者破解版都没有自带这个工具箱,所以无奈之下卸载了并安装了2018b版本的MATLAB,...
  • 首先,我尝试运行演示代码,该代码生成模拟数据以运行该方法,并导致以下错误:使用feval未定义函数或变量'Sfun'时出错。OptStiefelGBB中的错误(第199行)[F,G] = feval(fun,X,varargin {:}); out.nfe = 1;tbne_...
  • 在C++也可以编译成功,只是运行时候提示: 未定义函数或变量'sym' ![图片说明](https://img-ask.csdn.net/upload/201907/22/1563787205_568806.jpg) 3.找到MATLAB 源程序对应程序如下: tmp(i,1)=...
  • 本文记录了在使用MATLAB2019ASimulink工具箱做数字基带传输仿真时碰到问题。
  • I have a vector of functions and I am trying to obtain subsets from it. I transform the functions in the vector into a cell array so that I can index into it. Here is the scriptcoeff1 = 1;...
  • 你给这段代码里并没有看到 ...如下面例子,未定义就会出错。符号变量定义方法例如...[y,fs,nbits]= wavread(wavFile1);y就是音频信号;fs是采...wavread函数 函数语法 y = wavread(filename) [y...wavre...
  • 目录未定义的变量“py”或函数“py.command”在命令行窗口键入py.command时,MATLAB®会自动加载 Python®。如果 MATLAB 显示以下消息,则表示加载失败。Undefined variable "py" or function "py.command"此页面...
  • 以D:Matlabbincodehello.py 为例def hello(x):print("hello world")(直接看解决方案滑到最后,中间是一个理解过程)刚开始是为了在matlab中调用python文件中的函数,但是一直提示如题错误按照文档里操作的时候也不...
  • calcRectInt.m 文件在 rstEval 文件夹,如果打开matlab后没有运行 main_running.m 而是直接运行了 perfPlot.m 文件,就会这个错误,这时候需要把 rstEval 添加进路径。 可以是运行一下 main_running.m (当然...
  • 以D:\Matlab\bin\code\hello.py 为例 ...刚开始是为了在matlab中调用python文件中的函数,但是一直提示如题错误 这个问题搜遍了整个网站,matlab的帮助文档也看了,可以看看,可能会有点启发 https://ww2.mathw...
  • 未定义变量“py”或函数“py.command” Python未安装 Windows平台上的Python的 64 位/32 位版本 MATLAB 找不到 Python 在用户定义的Python模块中的错误 Python模块不在Python搜索路径上 模块名称冲突 ...
  • 未定义变量“py”或函数“py.command” Python未安装 Windows平台上的Python的 64 位/32 位版本 MATLAB 找不到 Python 在用户定义的Python模块中的错误 Python模块不在Python搜索路径上 模块名称冲突 ...
  • MATLAB中的mmread函数

    2021-04-19 16:35:48
    结果显示未定义函数或变量mmread,这是怎么回事?我也已经下载了mmread.m文件。 部分源码如下: <p>function test_sherman5 clc;clear all; close all; A=mmread('...
  • 最近这几周在做数字信号处理实验,实验马上就结束了,闲来无事写个教程吧。留个菜菜纪念。 刚开始做时候用老师给例程就是运行不出来结果,通过老师、度娘搞了一天...未定义函数或变量 'afd_butt'。 出错...
  • MATLAB中eval函数和cell型数组组合使用 一、eval eval功能简单来说就是可以把字符串当做命令来执行。经常用于循环当中,特别是有些变量的名字中含有有规律数字。 二、{ } 大括号,用于cell型数组(就是前面...
  • 未定义函数或变量caffe_ 未定义函数或变量caffe ** 在matlab上添加路径并没有用。 花了很多时间,看了很多解答,最后发现,需要给系统添加环境变量,地址为‘caffe/Build/x64/Release’。 添加完之后,重新启动文件...
  • 1。Error using svmtrain (line 233) Y must be a vector or a character array. 首先,需要看你电脑是64位版本还是32位版本。请在这里下载,可以直接使用,32位64位都行。...未定义函数或变量 ‘boiler_proces

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

matlab中的未定义函数或变量

matlab 订阅