精华内容
下载资源
问答
  • 2019-01-11 11:56:47

    问题描述:

           在做算法对比实验时,经常需要依次运行多个算法的代码。每个算法的入口程序是一个脚本.m文件(当然,算法的脚本文件中又会调用算法自己的子函数)。我们期望MATLAB依次运行这些对比算法的脚本.m文件,而不用等到一个算法的程序执行结束后,再去运行下一个算法的代码(有时还得修改路径),这样显得很麻烦。

           当然,运行前首先编写好这些脚本文件,确保没有错误,需要修改的都已经调整完毕。另外,每个算法都会涉及到调用子函数。所以不同算法可能会调用相同文件名的函数程序(可能函数文件名相同,但是其中的代码会有差异)。这时就要注意函数命名问题,最好避免相同函数文件出现,从而避免不必要的麻烦,或者带来不期望的结果。

    简化问题:

           现在有多个脚本文件,文件名分别为“file1.m”、“file2.m”和“file3.m”,期望实现MATLAB依次运行这些个脚本.m文件。

    解决方法:

    方法一:新建一个脚本文件,编写下面的代码:

    clc
    clear
    close all
    
    file1 % 第一个脚本文件的名字(注:直接写下脚本文件的名字,无需用单引号括起来,无需.m后缀。下同)
    
    
    clear % 清除第一个脚本文件执行过程中的所有变量
    file2 % 第二个脚本文件的名字(要求同上)
    
    clear % 清除第二个脚本文件执行过程中的所有变量
    file3 % 第三个脚本文件的名字(要求同上)
    
    % 下面如果还有其他脚本文件,则都可以如法炮制

    方法二:使用 run() 函数

    clc
    clear
    close all
    
    run( 'file1.m' ) % 运行第一个脚本文件
    
    
    clear % 清除第一个脚本文件执行过程中的所有变量
    run( 'file2.m' ) % 运行第二个脚本文件
    
    
    clear % 清除第二个脚本文件执行过程中的所有变量
    run( 'file3.m' ) % 运行第三个脚本文件
    
    
    % 值得一提的是:这些个脚本文件可以在不同的文件夹下。比如一个在D盘某个文件夹下,一个在F盘某个文件夹下。
    % 这时,只需要在run()语句的字符串中加入脚本文件的绝对路径即可。脚本文件执行时,也不会受到当前路径的影响。
    % 例如:run( 'D:\file1.m' );
    
    
    
    % 下面如果还有其他脚本文件,则都可以如法炮制

           注:尽管有时要运行的脚本文件不在MATLAB的当前路径下。只要在run()语句的字符串中加入脚本文件的绝对路径,则在脚本文件执行时,就不会受到当前路径的影响。

     


    另外,可以使用命令“doc run”查看run函数的详细使用说明。

    这里也摘抄过来:

    run——Run MATLAB script(执行MATLAB脚本文件)

    Syntax:

            run( scriptname )

    Description:

            run( scriptname ); %  runs the MATLAB script specified by scriptname.(运行由scriptname指定的MATLAB脚本文件

            % scriptname — Full or relative script path(character vector)

            % Full or relative script path to a MATLAB script, specified as a character vector. 

            % scriptname can specify any file type that MATLAB can execute, such as MATLAB script files, Simulink models, or MEX-files.

            % Example: scriptname = 'myScript'

            % Example: scriptname = 'anotherScript.m'

            % Example: scriptname = 'oneMoreScript.mlx'

           (scriptname是绝对的或相对的脚本文件路径,是一个字符串,可以指定MATLAB的任意文件类型。

    Tips:

    • run executes scripts not currently on the MATLAB path. However, you should use cd or addpath to navigate to or to add the appropriate folder, making a script executable by entering its name alone.
    • scriptname can access any variables in the current workspace.
    • run changes to the folder that contains the script, executes it, and resets back to the original folder. If the script itself changes folders, then run does not revert to the original folder, unless scriptname changes to the folder in which this script resides.
    • If scriptname corresponds to both a .m file and a P-file residing in the same folder, then run executes the P-file. This occurs even if you specify scriptnamewith a .m extension.
    • If a script is not on the MATLAB path, executing the run command caches the script. In the same session and after calling run, you can edit the script using an external editor. Call clear scriptname before calling run again to use the changed version of the script rather than the cached version. If you edit the script with the MATLAB editor, run executes the changed version and there is no need to call clear scriptname.

    译:

    • run 执行不在MATLAB当前路径上的脚本。但是,您应该使用cd或addpath导航到或者添加相应的文件夹,通过输入其名称,使脚本可执行。
    • scriptname 可以访问当前工作空间中的任何变量。
    • run 切换至包含该脚本的文件夹,再执行该脚本,完毕后重新回到原始文件夹。如果脚本本身(内部)更改了文件夹,则 run 不会还原到原始文件夹,除非是用 scriptname 来切换的此脚本所在的文件夹。
    • 如果 scriptname 对应于同一文件夹中的.m文件和P文件,则 run 执行P文件。即使您指定带有.m扩展名的scriptname,也会发生这种情况。(即:如果同一文件夹下包含同名的.m文件和P文件,则优先执行P文件。)
    • 如果脚本不在MATLAB路径上,则执行 run 命令会缓存脚本。在同一会话中以及调用 run 之后,您可以使用外部编辑器编辑脚本。在再次调用run之前调用clear scriptname,来使用更改的脚本版本而不是缓存版本。如果使用MATLAB编辑器编辑脚本,则 run 执行更改的版本,无需调用clear scriptname。

    附:run函数的在线帮助文档:https://ww2.mathworks.cn/help/matlab/ref/run.html


     

    更多相关内容
  • 楼主你好你的证明确实是在这样的,我也试验了下,个人认为是当matlab开始运行后,就将所有代码都读入内存,就算运行...function SIN=drawSin(x)%放在2113第一个m文件中5261SIN=sin(x);plot(x,y,'g*');function COS=...

    楼主你好你的证明确实是在这样的,我也试验了下,个人认为是当matlab开始运行后,就将所有代码都读入内存,就算运行之中通过其他软件-例如记事本修改了正在运行的代码,也不会影响内存中的计算。个人见解,欢迎讨论www.mh456.com防采集。

    function SIN=drawSin(x)%放在2113第一个m文件中5261SIN=sin(x);plot(x,y,'g*');function COS=drawCos(x)%放在第二个m文件中COS=sin(x);plot(x,y,'r*');function Main()%放在第三个4102m文件中,drawSin,drawCos是子程1653序x=-pi:0.1:pi;drawSin(x)drawCos(x)

    我想你是要实现matlab并行计算。以前实现比较麻烦,新版本的matlab很容易了 matlabpool(2) parfor i=1:2 eval(['myfun' num2str(i)';']);end

    67e7cc39dc630d06317f6e18f11c3458.png

    一般情况下matlab都是一句一句代码执行的,你想要同时运行两个指令,要么双开matlab,要么利用matlab并行算法,例如parfor,spmd架构等,请详细说明你这样做的目的,好让我们分析解决你的问题内容来自www.mh456.com请勿采集。

    展开全文
  • m文件基本上就是函数,例如第二个m文件函数名为 function mode(a,b) 则第一个m调用时写mode(a,b)即可function 函数名1653按程序,后面的数据将覆盖前面的数据,可按下面: function xunhuan(k) %input('循环次...

    www.mh456.com防采集。

    一个抄m文件中定义了多个函数的话,这些函2113数只能在这个5261m文件中的函数4102中调用。

    m文件基本上就是函数,例如第二个m文件函数名为 function mode(a,b) 则第一个m调用时写mode(a,b)即可

    function 函数名1653

    按程序,后面的数据将覆盖前面的数据,可按下面: function xunhuan(k) %input('循环次数') for i=1:k myfunc; success=xlswrite('E:testdata.xls', W,i) end end 这样会在一个文件中生成多个工作表 扩展资料: mex的编译结果实际上就是一个带输

    函数内容

    end

    function 函数名1

    将两个m文件放在同一目录,在第一个m文件里面直接输入第二个m文件的函数名称即可 。 [输出1,输出2,..]=函数名称(变量1,变量2,)

    函数内容

    end

    matlab中如何定义函数

    将这两个函数保存在两个m文件里,文件的名字和函数的名字一致,bace.m 和 rid.m 。然后重新建一个m文件,如果调用这两个函数的时候,用其名字,再带参数就行了。 eg: result1=base(x); result2=rid(y); result3=result1+result2;

    首先建立M文件或直接点击(File/New/Function)建立函数文件,其中函数文件的格式是:

    可以,不过这样的话子函数就不能被其他文件中的函数调用 这个错误代表你用了形如ZS(a)的引用,但是没有定义ZS这个函数

    function [输出变量] = 函数名称(输入变量)

    % 注释

    % 函数体

    end

    编写代码如下并保存文件,注意文件命名时不能以数字开头:

    function [s]  = eg_sum( n )

    % calculate the sum of 1..n

    s = 0;

    for i = 1:n

    s = s + i;

    end

    8566dfe20ca3a10ba8cddc3324f7d55c.png

    回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数,如下所示:

    >> clear

    >> a = eg_sum(10)

    运行结果: a = 55

    771a5b3aa4c45ae5ff64598ad5cd01d0.png

    函数名可以与函数文件名不一致,只要知道调用函数时是通过函数文件名调用的这点即可!如下图所示,即使文件名仍然是eg_sum,但我可以修改函数名为:my_sum 调用时用文件名调用就好,如下所示:

    >> b = eg_sum(10)

    运行结果: b = 55

    41dfb596ea8182dbc15077e6222b2067.png

    内容来自www.mh456.com请勿采集。

    展开全文
  • 这条规则很难受,就不能像C语言那样,把多个函数写在一个m文件里,供别的m文件调用吗 目前找到了2种方法,第一种使用函数句柄,也就是函数指针,第二种使用类的静态函数: 方法1: 方法2: classdef FcCommon...

    一般都是每个函数独占一个m文件,而且函数名与文件名必须相同。这条规则很难受,就不能像C语言那样,把多个函数写在一个m文件里,供别的m文件调用吗?当然可以,只是方法非常另类。

    目前找到了2种方法,第一种使用函数句柄,也就是函数指针,第二种使用类的静态函数:

    方法1:

    方法2:

    classdef FcCommon < handle
        
        
        properties
            静态成员变量 %列向量
        end
        
        methods %普通函数块--开始        
           
           
        end %普通函数块--结束
        
        
        
        methods(Static) %静态函数块---开始
            %把静态成员函数都写在这个区域
            function a = readPara(b,c,d,e)
                ......
            end
        end %静态函数块---结束       
            
            
        
    end %类定义结束

    主程序调用如下:

    fc = FcCommon();%调用构造函数生成对象

    val = fc.readPara(a,s,d,f);%调用对象的静态成员

     

    展开全文
  • 如何在1个Matlab m文件中定义多个函数直接运行

    万次阅读 多人点赞 2018-05-24 19:48:56
    如果仍希望将全部程序放入一个m文件中,并可以直接运行出结果,该程序包括主程序及主程序中使用的函数,这些函数内容也会写在同一m文件中,则需要用“function main”声明主函数,即主程序,同时也要合理使用全局...
  • 如何在1个Matlab m文件中定义多个函数运行

    万次阅读 多人点赞 2019-04-17 18:08:35
    如果仍希望将全部程序放入一个m文件中,并可以直接运行出结果,该程序包括主程序及主程序中使用的函数,这些函数内容也会写在同一m文件中,则需要用function main(可以起另一个名字)声明主函数,即主程序,即可...
  • 怎样在matlab的命令窗口运行.m文件

    千次阅读 2021-04-19 05:32:34
    这要看你的M文件是函数文件还是脚本:如果是函数function开头,比如function chen=fun1(in) 直接在workspace中调用out=fun1(in) 若m文件是脚本,文件名为fun2直接在workspace中输入fun2就行了直接调用...
  • 2、两个m文件必须放在同一目录下,在第一个m文件里面直接输入第二个m文件的函数名称。 格式如下: 第二个m文件被调函数格式: 注:这里不能有clear,clc的操作 function s = name(a,b…) 函数主体 end 第一个m文件...
  • 将matlab中多个m文件的图形在同一个小窗口上显示的前提是坐标系相同,下面就做简单的介绍: 1、新建一个huatu1.m文件,三角函数为例,程序如下: x=0:1:360; y=sind(x); plot(x,y); 2、新建一个huatu2.m文件,...
  • 1.安装pyinstaller pip install pyinstaller ps:如果提示: 可以采用cd到安装python中的Scripts...我的程序是checkfiles.py调用check_part1.py,同时还附加一txt文件,在利用pyinstaller打包时,再dos窗口先...
  • 问题: 刚开始练习c++,一般都写一点简单的小程序,都有main函数,在同一项目下不能运行,怎么做可以不用每次都创建新项目, ...因为已经规定一程序只能有一main函数,所以你想在不同的cpp中都写上m...
  • 第二、在打包好的项目使用nginx运行起来查看是发现有多个端口号是运行不起来,必须要在nginx中配置你项目中使用到的端口号; 1.找到文件夹 conf => nginx.conf 文件,你在浏览器中运行的端口号也是在这里面修改...
  • 在使用这款软件的时候,我们经常需要创建M-file文件,也就是脚本文件,才能运行程序。这款软件需要输入代码,所以专业性很强,因此有很小伙伴不知道怎么创建M-file文件。那么接下来小编就给大家详...
  • 当我们运行React Native项目的时候,React Native会启动一默认端口号为8081的本地服务,该8081的服务就是React Native项目的一本地服务器,用于提供JSBundle包和一些静态资源。这一切都是React Native帮...
  • matlab p文件肿么打开 或者 运行

    千次阅读 2021-04-20 11:55:54
    运行比较简单,和调用m文件方法一样。下面是一些解释。P文件是对应M文件的一种预解析版本(preparsedversion)。因为当你第一次执行M文件时,Matlab需要将其解析(parse)一次(第一次执行后的已解析内容会放入内存作第二...
  • 前言: 在实际系统中,每docker提供的微服务功能范围较小...Compose 是用于定义和运行多容器 Docker 应用程序的工具。 通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一命令,就..
  • Matlab创建M文件以及程序控制

    千次阅读 2020-05-19 19:51:42
    学习matlab中m文件的创建,m文件的路径修改,matlab的程序控制及结构,matlab函数文件及调用
  • 上篇说到将excel中的一个工作表按照某列拆分成多个sheet工作表,那么如何把excel中的多个sheet工作表拆分成一个一个独立的工作表呢?接下来就继续利用VBA工具来解决这个问题。 第一步:打开要拆分的表格,如图所示:...
  • Matlab 每次双击.m文件都会自动打开一Matlab程序 每次打开两 *.m文件会打开两应用程序,占用不少内存。...step2:解压,运行里面的.m文件,会生成一reg文件,双击运行即可 step3:重启matlab就OK...
  • 3.4运行.m文件,会自动运行.mdl文件,可以查看结果 3.5同时运行2以上控制器 PS: 一、背景 要用模型预测控制(MPC)做算法的对比实验,发现写纯.m文件有点麻烦,毕竟我不深入原理,于是用MATLAB/SIMULINK自带...
  • Docker 运行多个Springboot

    千次阅读 2020-11-30 18:19:02
    第三:读取物理文件 第四:写入物理文件 第五:日志文件 第一:端口映射 Nginx使用的是转发,那么这是最简单的。 [hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker run -d -p 8093:8093 guides-collect ...
  • VSCode的多个(C/C++)源文件的编译运行(Linux)

    万次阅读 多人点赞 2018-07-20 20:04:41
    VSCode作为微软推出的一款免费...在这里介绍关于多个C/C++源文件在VSCode编译运行的方式方法,这里会用到makefile以及Opencv 注意:这里默认你已经在Linux系统上配置好了Opencv环境,只有这样你才能成功运行实例程序。
  • 本程序是自己针对一篇IEEE TCST文章,用matlab编程实现,已验证可以运行。附件有详细的程序使用说明,和对应的文章。...(这个程序上传的时候少了一个m文件,请搜索本人上传的所有资源找到补充文件)
  • Matlab中写M文件及调用

    万次阅读 2018-04-08 16:56:27
    MATLAB第一次执行一个M文件时,将打开相应的文本文件并将命令编辑成存储器的内部表示,以加速执行以后的调用 。如果函数包含了对其他M文件函数的调用,它们也将同样被编译到存储器中。普通的脚本M文件不被编译,即使...
  • 分析linux下如何运行执行文件

    万次阅读 2018-03-06 22:42:21
    现在就从从一执行文件a.out的运行开始,自上而下地分析linux是如何运行执行文件的。1、首先,需要了解一下a.out这目标文件。a.out在linux下是ELF(Executable Linkable Format)文件格式,该目标文件由一...
  • 编写matlab程序时,为了方便移植,可将test.m文件所在的目录设置为活动窗口,也可以...其实很简单:只需要在需要第一个运行的test.m文件中添加如下代码就可以: % %设置本文件所在路径为当前工作空间路径 filep = m...
  • 多个class文件打包为jar包

    万次阅读 2018-07-31 10:10:20
    1. 运行cmd,输入jar命令,回车,即可看到jar命令的使用说明: C:\Users\administrator&gt;jar Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ... Options: -c ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,027,666
精华内容 411,066
关键字:

多个m文件怎么运行教程