精华内容
下载资源
问答
  • MATLAB 尝试将 SCRIPT XXXX 作为函数执行

    千次阅读 2019-12-19 17:29:49
    MATLAB尝试调用自己编写的文件函数时出现了下面问题: 网上的说明一般都是在说自己定义的函数名和MATLAB中某些特定的函数名重了 换个函数名就万事大吉 但是经过一系列骚操作之后发现并没有什么用 果然找原因还是...

    MATLAB中尝试调用自己编写的文件函数时出现了下面问题:
    在这里插入图片描述
    网上的说明一般都是在说自己定义的函数名和MATLAB中某些特定的函数名重了 换个函数名就万事大吉 但是经过一系列骚操作之后发现并没有什么用

    果然找原因还是应该从自身找 再一次打开文件函数查看时 发现原来是函数本身的定义的就有问题 嗯 出现问题就应该先从何自身找问题

    展开全文
  • Matlab尝试将 SCRIPT XXX 作为函数执行的解决方案

    万次阅读 多人点赞 2020-04-04 18:13:25
    Matlab尝试将 SCRIPT XXX 作为函数执行的解决方案 最近在做图像处理小实验的过程中遇到了无比沙雕的情况,被自己佛了,最近真的智商不在线,或者没在线过。先描述一下问题:在Matlab中调用直方图均衡化函数histeq...

    Matlab:尝试将 SCRIPT XXX 作为函数执行的解决方案

    最近在做图像处理小实验的过程中遇到了无比沙雕的情况,被自己佛了,最近真的智商不在线,或者没在线过。先描述一下问题:在Matlab中调用直方图均衡化函数histeq,但是出现了如下图情况:

    在这里插入图片描述

    为此我还help了一下:

    在这里插入图片描述

    在这里插入图片描述

    心想histeq不是Matlab自带的函数吗,咋可能不存在,然后又看了一下自己的代码,没问题啊,上网找了一下代码对比,也没问题啊。突然脑子产生一个疑问:代码命名为histeq应该不会干扰吧,上网查了一下,好像真的有影响哎。决定换个名字试试,把代码的原名hieteq改成了histeq_test。运行结果如下:


    怎么也没想到,真的竟然果然是命名的锅,真是被教了怎么做人。养成好的文档命名习惯多重要啊,虽然我命名方式提醒了我自己,但是却忽略了Matlab的感受,哎,以此为戒吧。
    (参考博客:https://blog.csdn.net/u010005281/article/details/44980897?utm_source=blogxgwz9)

    展开全文
  • matlab报错:尝试将 SCRIPT xxx 作为函数执行

    万次阅读 多人点赞 2019-12-30 15:17:54
    最近在跑matlab代码,今天在运行别人程序发现了一个错误,尝试将 SCRIPT xxx 作为函数执行, 这里记录自己的填坑指南,也方便自己和大家以后查阅。 1. 问题出现 在运行某代码的时出现错误, **尝试将 SCRIPT xxx ...

    最近在跑matlab代码,今天在运行别人程序发现了一个错误,尝试将 SCRIPT xxx 作为函数执行, 这里记录自己的填坑指南,也方便自己和大家以后查阅。

    1. 问题出现

    在运行某代码的时出现错误, 尝试将 SCRIPT xxx 作为函数执行 如下图所示:
    在这里插入图片描述

    2. 猜想问题出现的可能性

    经过网上的搜索,发现列举了两种可能的错误:

    1. 文件名和函数名重名所致,只需将函数重命名
    2. 函数文件的第一行函数定义没有写或者编写错误,将函数定义修改规范即可

    参考

    1. 尝试将 SCRIPT script 作为函数执行
    2. matlab报错:尝试将 SCRIPT xxx 作为函数执行:错误

    但是经过具体的检查发现问题并不简单,因此我们比较笨的方法也是最原始的方法就是调试一下代码。因为我们这里的代码比较复杂,它是调用了两个外部工具包,即ompbox10以及ksvdbox13。关于matlab工具包的添加,可以参考给Matlab添加工具箱Toolbox的方法(有截图详细讲解)
    所以这里猜想问题可能出现在这两个工具包中。

    3. 问题的解决

    3.1 问题进一步定位

    经过上面的分析,我们首先定位到程序出错的地方,然后一级一级查看函数定义,最后发现我们调用函数是这番模样。
    在这里插入图片描述
    what? 有点吃惊, 这个函数实现竟然全部被注释了!!那么这个im2colstep具体是在哪里实现了?别急,我们在**.m**文件旁边发现了一个 .c 文件,猜想 我们这个函数其实底层使用c语言实现的! 所以,接下来我们的思路也是很清晰的,那就是首先先要了解matlab是如何调用c语言的。

    3.2 了解matlab中调用c程序

    3.2.1 初步了解

    matlab默认的程序文件是.m文件,但有很多情况下需要用matlab调用C语言程序,归纳起来有以几种情况:

    1. matlab程序中的某模块非常耗时,改用C语言编写可以提高执行速度。
    2. 现有成熟算法已经用C语言编写完成,但是matlab程序需要调用其中的某一算法,但不想改写成为.m程序
    3. 从.m程序可以直接获取源代码,为了保护知识产权,作者希望只提供接口,和库函数,供使用者调用。类似于Windows系统动态链接库(.dll)

    具体的大家可以参考这一篇博客做更详细的了解matlab调用C语言程序,MEX文件使用方法,matlab与C混合编程。这里也不做过多的解释了。

    3.2.2 配置matlab编译器

    按照作者的介绍,我们首先应该需要配置matlab编译器,如何配置呢?参考Matlab安装 MinGW-w64 编译器的方法

    在matlab工作区中输入以下命令行: mex -setup

    结果出现:
    在这里插入图片描述
    既然没有那我们就安装一下呗。大概经历以下几个步骤:

    1. 下载MinGW-w64 C++编译器(下载地址,安装时注意选择32位还是64位的,因为我的机器是64位的,所以需要下载64位的!如果你是32位机器,那么就下载32位的!)
      在这里插入图片描述 第一个TDM32 MinGW针对32位机器, 第二个TDM64 MinGW-w64是64位机器。

      (1)安装时注意最好按照默认路径安装,否则后面使用时可能会报错

      (2)安装时点create,窗口下面的勾选框要选上

    2. 设置其路径到环境变量
      电脑->属性->高级系统设置->环境变量->系统变量->添加

    在这里插入图片描述

    1. 在MATLAB命令行内运行命令setenv(‘MW_MINGW64_LOC’,folder),folder为TDM-GCC的安装位置,这里是'C:\TDM-GCC-64'要加单引号;

    2. 重启matlab即可使用(这里最好重启一下电脑!我是重启了matlab没有作用)

    经过上面的操作,我们是完成编译器的安装,然后在matlab的命令行中,输入mex -setup,这时候就出现编译器已经安装完毕了。

    在这里插入图片描述

    3.2.3 在matlab中编译c代码

    在完成了之前的编译器的配置之后,我们接下来就开始编译我们的c代码。那么如何编译了?

    1. 我们首先切换当前的目录, 进入到需要编译.c程序的目录。
    2. 使用mex ***.c 命令,等到编译成功之后你会发现在当前的目录下,生成.mexw64后缀名的文件。
      在这里插入图片描述
    3. 更新matlab的工具箱路径缓存(这一步很重要,要不然之前的生成的.mexw64文件并没有发生作用。)
      这里以matlab2015为例, 在主页->预设->常规(这里每生成一次.mexw64就需要生成更新一次!)
      在这里插入图片描述
      这时候,我们再次运行一下主程序,发现
      在这里插入图片描述
      表示我们上个函数的错误已经解决了,接下来我们就需要按照上面的方法,将每一个函数生成对应的.mexw64文件。然后程序就没有错误了:
      在这里插入图片描述

    4. 反思

    其实,我们观察工具包的目录的时候,其实是发现了.mexw32程序,到这里我们终于问题尝试将 SCRIPT xxx 作为函数执行的原因是:其实这个原生程序在32位机器是可以跑的通的,原作者也是在32位机器写的。只是现在我们换成了64位机器,却没有提供相应的.mexw64文件,导致matlab不能解析.c文件。好吧,暂时先写到这里,后面的话如果有时间的话,把这两个工具包的32/64位版本都传到我的github上了。感谢其他博主的分享。

    1. ksvdbox13
    2. ompbox10

    这个应该是今年最后一个博客了,让我们迎接2020,哈哈。

    展开全文
  • 在运行以下代码时,matlab报错:尝试将 SCRIPT czt 作为函数执行。 代码来源:频率细化算法czt_cxy885588的博客-CSDN博客_czt算法 close all; clear all; fs=256;%采样频率 N=512;%采样点数 nfft=512; n=0:1:N-1;...

    问题

    在运行以下代码时,matlab报错:尝试将 SCRIPT czt 作为函数执行。

    代码来源:频率细化算法czt_cxy885588的博客-CSDN博客_czt算法

    close all;
    clear all;
    fs=256;%采样频率
    N=512;%采样点数
    nfft=512;
    n=0:1:N-1;%时间序列号
    %n/fs:采样频率下对应的时间序列值
    n1=fs*(0:nfft/2-1)/nfft;%F F T对应的频率序列
    x=3*cos(2*pi*101.45*n/fs)+2*cos(2*pi*102.3*n/fs)+4*cos(2*pi*103.8*n/fs)+5*cos(2*pi*104.5*n/fs);
    figure;
    plot(n,x);
    xlabel('时间t');
    ylabel('value');
    title('信号的时域波形');
    %-------
    XK=fft(x,nfft);%单边幅值谱
    figure;
    subplot(211);stem(n1,abs(XK(1:(nfft/2))));%用杆状来画FFT的图,也可以
    axis([95,110,0,1500]);
    title('直接利用FFT变换后的频谱');
    subplot(212);plot(n1,abs(XK(1:(N/2))));
    axis([95,110,0,1500]);
    title('直接利用FFT变换后的频谱');
    %-----------
    f1=100;%细化频率段起点
    f2=110;%细化频率段终点
    m=256;%细化频段的频点数,(这里其实就是细化精度)
    w=exp(-j*2*pi*(f2-f1)/(fs*m));%细化频段的跨度(步长)
    a=exp(j*2*pi*f1/fs);%细化频段的起始点,这里需要运算一下才能代入czt函数
    
    xk=czt(x,m,w,a);
    
    h=0:1:m-1;%细化频点序列
    f0=(f2-f1)/m*h+100;%细化的频率值
    figure;
    subplot(211);stem(f0,abs(xk));
    xlabel('f');
    ylabel('value');
    title('利用CZT变换后的细化频谱');
    subplot(212);plot(f0,abs(xk));
    xlabel('f');
    ylabel('value');
    title('利用CZT变换后的细化频谱');

    解决方案

    因为MATLAB脚本也被命名为了czt.m,导致与MATLAB自带函数czt重名导致冲突。

    展开全文
  • 关于matlab报错尝试将script xxx 作为函数运行

    万次阅读 多人点赞 2018-12-27 09:30:23
    在调试cylinder程序时,出现以下错误: 是因为编写的文件名和程序中要执行的函数重名了。 把文件名改一下就ok了。 当然具体情况具体分析,别的情况导致script错误的还没碰见。 ...
  • 应该是绘制bode图时使用conv.m,发现出现了尝试将SCRIPT conv作为函数执行,我傻了。 看了其他博主的方法都不好使,修该为conv1.m也不行,本质上应该是两个问题,我没定义使用conv。 我只能打开conv.m看看是什么问题...
  • 在做图像处理时调用了一个用C++写的matlab拓展包;该拓展包包括不可见的命名为XXX的C++源代码和命名为XXX.m的功能说明文件,XXX.m...过了几天再次调用XXX函数时,MATLAB开始尝试识别XXX.m文件,提示“尝试将script X...
  • 大家可以先观察一下,如果你的报错尝试将 SCRIPT surf作为函数执行:后面的文件地址是在E:\MATLAB\R2018b\toolbox\matlab\graph3d这种类别的地方,那你就去按照这个路径去检查一下,你的surf文件是不是空的。...
  • MATLAB报错:‘尝试将script XX.m作为函数执行’解决方法
  • matlab尝试将 SCRIPT xxx 作为函数执行:错误 出现这种错误主要是文件名和函数名重名所致,只需重命名 #这里的matlab脚本名字命名为imwrite.m,与imwrite函数重名,报错 >> B=imread('G:\matlab\img\1.jpg...
  • 错误如图所示。 因为…文件命名不规范,不能包含 -, 只允许 字母,数字,下划线。
  • 1、首先要检查是不是函数命名的问题 2、打开安装包中mesh.m这个函数,检查是不是函数本身的问题 我遇到这个问题检查函数发现是函数自身的问题 第一行代码function h=mesh(varargin) 中function前多了一个字母c,删掉...
  • 如何解决matlab中 “尝试将 SCRIPT XXX 作为函数执行” 的错误? 1、问题再现 使用平台:Windows10+ matlab2017b。XXX代表任意文件名,本文以ilabel为例。 在执行书中代码,在二值图像上执行连通区域或者进行连通区域...
  • end Q6: 这也是标题中的报错“尝试将 SCRIPT vl_nnconv 作为函数执行”,网上有说进入matconvnet文件下的matlab中执行: mex -setup C++ vl_setupnn() vl_compilenn vl_compilenn('enableGpu', true) 对于解决问题...
  • matlab报错:尝试将 SCRIPT xxx 作为函数执行:错误

    万次阅读 多人点赞 2019-08-04 21:45:12
    matlab报错:尝试将 SCRIPT xxx 作为函数执行:错误 主要有两个原因: 1.文件名和函数名重名所致,只需函数重命名 2.函数文件的第一行函数定义没有写或者编写错误,函数定义修改规范即可 ...
  • 主页——设置路径——直接点保存,再重新运行程序应该就没问题了。(我遇到的问题出在VLFeat中的某个.m,预先VLFeat已经配置好,且路径配置好)
  • 解决MATLAB"尝试将 SCRIPT open 作为函数执行"的问题 当关闭MATLAB一个脚本的时候,再次双击打开,会出现下图的情况: 脚本无法打开,只能用实时脚本的方式打开,但是无法在线编辑。上网找了很多方法但是都无法解决...
  • 答:XXX.m文件更名即可(如更名为XXX1.m)。 MATLAB之前为什么可以无视XXX.m文件而直接编译源文件,现在却不行了呢?需要怎么样的什么环境设置/搜索路径或者其他设置呢?某种情况下重装MATLAB也可以解决这个问题,...
  • 如图,有没有大佬知道问题出在哪里呀
  • LQR控制算法可利用lqr命令求解最优反馈矩阵,构成一个闭环的...利用matlab仿真时报错,尝试将SCRIPT lqr 作为函数执行, 出现该问题的主要原因是:你的文件命名为lqr.m和函数lqr重合了,只需要文件名修改即可! ...
  • 尝试将 SCRIPT im2double 作为函数执行: D:\MATLAB\R2018a\toolbox\matlab\images\im2double.m
  • 我的问题是当前文件夹下存在XXX.m等程序 ...尝试将 SCRIPT print 作为函数执行: E:\afiledesk\matlab\print.m 意思是该文加下存在冲突的print.m文件,此时只要把当前的.m文件重命名就好了 即 修改完成!!! ...
  • 今天在main.m文件中调用fdatool出来的滤波器,出现了错误提示程序是没有问题的,后来发现,是因为matlab当前路径不是包含main.m和filter_low.m的文件路径,路径改过来就行了。原来的路径:改过来之后的路径:再...
  • 尝试将 SCRIPT DHFactor 作为函数执行:E:\matlab2017\toolbox\rvctools\robot\DHFactor.m Matlab编译错误:尝试将 SCRIPT DHFactor 作为函数执行:E:\matlab2017\toolbox\rvctools\robot\DHFactor.m 是不是想输入: &...
  • 导致这项异常的原因,只有一...有些情况,虽然m文件名与某一函数名相同,但不会报类尝试将 SCRIPT pcshowpair 作为函数执行 的错误,但同样不能正常运行,因此,最好的办法就是 避免m文件名与某一函数名重名!!! ...
  • 重新运行一下matconvnet中matlab文件夹下的vl_setupnn函数就可以完美解决。
  • http://blog.sina.com.cn/superqhs
  • 目前默认的程序文件位置在C盘,MATLAB文件夹中,既然尝试将错误的函数作为rlocus(只是举例)运行,那边可以修改本脚本文件的位置。 修改方法: 删除上述路径,或添加新的默认路径即可解决。 ...
  • 尝试将 SCRIPT XXX 作为函数执行

    万次阅读 2018-08-19 16:03:29
    尝试将 SCRIPT XXX 作为函数执行 MATLAB 执行时报错! 解决: 更改源文件名 .m 即可;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 999
精华内容 399
关键字:

matlab尝试将script

matlab 订阅