MATLAB编程(3)——MATLAB依次运行多个脚本.m文件

2023-11-04

问题描述:

       在做算法对比实验时,经常需要依次运行多个算法的代码。每个算法的入口程序是一个脚本.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


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB编程(3)——MATLAB依次运行多个脚本.m文件 的相关文章

  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 傅里叶变换定理 matlab

    我目前正在尝试理解二维傅里叶位移定理 根据我到目前为止所了解到的情况 图像空间中的平移会导致相位差异 但不会导致频率空间中的幅度差异 我试图用一个小例子来演示这一点 但它只适用于行的移位 而不适用于列的移位 这是一个小演示 我只在这里显示幅
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • MATLAB - GUI 和 OPC 服务器

    我想在 MATLAB 中设计一个图形用户界面 可以使用 MATLAB 的过程控制对象链接和嵌入 OPC 工具箱连续读取数据 我怎样才能实现这个 我已经设计了图形用户界面 但我无法将数据读入图形用户界面 就这样做 type opctoolMA
  • 归一化互相关的基础知识

    我正在尝试使用范数校正2 归一化互相关 http en wikipedia org wiki Cross correlation Normalized cross correlation 来自 MATLAB 用于计算发育中胚胎中移动形状的速
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 如何为已编译的 MATLAB 创建安装程序并要求用户接受我们的许可条款?

    我正在 MATLAB 中编写程序分发给 Windows 用户 我使用 MATLAB 编译器和 MATLAB r2014a 版本来创建程序 我可以使用 MATLAB 应用程序编译器创建 Windows 安装程序 并且它的工作效果可以接受 但是
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 在 matlab 代码中使用 dll 文件

    我需要使用 Matlab 中由 dll 文件定义的函数 我有一个例子 那个家伙将 dll 转换为 mexw32 文件 但我知道我是如何做到这一点的 我尝试使用加载库但它没有创建任何文件 我怎样才能做到这一点 loadlibrary http
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 我如何编写一个名为 dedbi 的 MATLAB 函数,它将输入 xtx 作为字符串并返回另一个字符串 xtxx 作为输出。

    dedbi 反转单词 即 a 将被 z 替换 b 将被 y 替换 c 将被 x 替换 依此类推 dedbi 将对大写字母执行相同的操作 即将字符串 A 替换为 Z 将 B 替换为 Y 将 C 替换为 X 依此类推 如果我给函数这个字符串 a
  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s

随机推荐

  • Vue集成百度的Ueditor 前端+后台

    1 vue安装命令 npm i vue ueditor wrap 2 下载插件 Ueditor官网地址为 Ueditor 3 插件位置 下载好之后 将Jsp版本解压 解压后文件夹改名为UEditor 将文件夹中的 jsp目录删掉 将UEdi
  • 【编程笔试】美团2021校招笔试-通用编程题第2场(附思路及C++代码)

    导览 练习地址 小团的配送团队 不一样的逆序数 小团的旅行路线 小团的车辆调度 总结 练习地址 点此前往练习 小团的配送团队 小团是美团外卖的区域配送负责人 众所周知 外卖小哥一般都会同时配送若干单 小团在接单时希望把同一个小区的单子放在一
  • Android事件监听器和回调方法

    事件是 Android 平台与用户交互的手段 当用户对手机进行操作时 会产生各种各样的输入事件 Android 框架捕获到这些事件 进而进行处理 Android 平台提供了多种用于获取用户输入事件的方式 考虑到用户事件都是在特定的用户界面中
  • 嵌入式的发展前景如何?

    嵌入式的发展前景呈上升的趋势 其本身的薪资待遇并不低 再加上技术更新迭代日新月异 发展前景非常好 目前 工业发展迅速 并紧跟时代的潮流积极引进嵌入式技术 推动工业发展向着全面自动化的方向发展 同时智能仪表 自动化数控设备 现代化技术等与嵌入
  • JS 监听浏览器各个标签间的切换-visibilitychange事件介绍

    JS 监听浏览器各个标签间的切换 以前看到过一些网页 在标签切换到其它地址时 网页上的标题上会发生变化 一直不知道这个是怎么做的 最近查了一些资料才发现有一个 visibilitychange 事件就可以搞定 这里将介绍一下页面可见性 Pa
  • nfs使用mount -o传递用户名和密码参数需要修改的地方

    挂在的信息一般通过 nfs parse mount option 可以直接打印 会有很多信息 1 修改的地方在super c该文件涉及到获取超级快等操作 修改enum 在里面添加 Opt username Opt passwd 2 修改另一
  • 那些年我们遇到的坑(3)-basePackages和scanBasePackages

    1 SpringBootApplication启动时会默认扫描主类当前包及子包 如果需要扫描主类当前包外的其他包或不扫描当前包下的特定包或类 可通过下列属性实现 Class scanBasePackageClasses default 详细
  • Nginx + Spring Boot 实现负载均衡

    Python实战社群 Java实战社群 长按识别下方二维码 按需求添加 扫码关注添加客服 进Python社群 扫码关注添加客服 进Java社群 作者丨虚无境 来源丨博客园 http www cnblogs com xuwujing 前言 本
  • 【Java】Map和Set

    目录 一 搜索树 1 概念 2 操作 查找 3 操作 插入 4 操作 删除 难点 6 性能分析 二 搜索 1 概念及场景 2 模型 三 Map 的使用 1 关于Map的说明 2 关于Map Entry的说明 gt 3 Map 的常用方法说明
  • Shiro简单配置Springboot版(3)

    6 整合SpringBoot项目实战 6 0 整合思路 6 1 创建springboot项目 6 2 引入shiro依赖
  • 小雀和他的王国【牛客练习赛56 E】【Tarjan缩点+树的直径】

    题目链接 首先 如果它本身就是在环内了 那么 任意的破坏环上的任意条边 都是不会影响答案的 所以 我们可以知道 会映像答案的边只有那些桥 于是 做法就变成了Tarjan缩点 然后就变成了一棵树了 我们现在想要构成最大的环 于是任务就变成了找
  • python 查tensorflow版本_查看已安装tensorflow版本

    由于tensorflow版本不同 可能一些函数的调用也有变换 这时候可能需要查看tensorflow版本 可以在终端输入查询命令如下 python import tensorflow as tf tf version 查询tensorflo
  • Android内存优化的10条建议

    合理设置应用的minSdkVersion和targetSdkVersion 使应用可以运行在更多设备上 这可以提高内存利用效率 避免在Application和Activity的onCreate方法中做过多工作 这会占用过多内存 可以将不必要
  • Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined

    最近项目里面 用了spring的定时任务 一直以来 项目运行的不错 定时器也能正常使用 可是 今天启动项目测试的时候 盯着启动Log看了一阵子 突然间发现 启动的Log中居然有一个异常 虽然一闪而过 但是那熟悉的异常格式还是让我浑身一颤 这
  • 启动hive报错_Power BI连接Hive数据库

    要想实现Powe BI连接Hive数据库 需要安装一个驱动进行配置 同时服务器开启hiveserver2在后台运行 1 下载ClouderaHiveODBC64 https downloads cloudera com connectors
  • windows安装mingw编译c程序

    这篇文章主要介绍在windows下安装mingw 编译c代码的详细步骤 mingw是在windows下面的gcc 有了mingw 以前在linux下面编写的c代码也能在window下面编译运行啦 1 第一步 下载mingw 下载mingw很
  • 从程序员的角度看待算法的学习与研究

    一 引言 算法的重要性和应用场景 提高效率 算法可以帮助我们设计和实现高效的解决方案 在有限的资源下 提高计算机程序或系统的执行速度和效率 解决复杂问题 算法可以提供有效的解决方案来解决各种复杂问题 例如图像处理 自然语言处理 数据分析等领
  • 微软疑断自由软件开发者“活路”,禁止在微软商店发布商业开源

    整理 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 几周前 微软更新了其应用商店的政策 增加了新的政策 将于下周开始生效 其中包括以下文字 所有定价 都不能 企图从开源或其他普遍免费的软件中获取经济利益 图源SFC 原本大家以
  • Python记3(类与对象、路径、文件、异常处理、抽象基类

    目录 1 Class 1 1 声明类 1 2 类的特殊属性 1 3 创建对象 1 4 构造函数和析构函数 1 5 类方法和静态方法 类变量与实例变量 1 6 公有 保护 私有变量 通过下划线数量和位置区分 1 7 继承 1 7 1 多继承M
  • MATLAB编程(3)——MATLAB依次运行多个脚本.m文件

    问题描述 在做算法对比实验时 经常需要依次运行多个算法的代码 每个算法的入口程序是一个脚本 m文件 当然 算法的脚本文件中又会调用算法自己的子函数 我们期望MATLAB依次运行这些对比算法的脚本 m文件 而不用等到一个算法的程序执行结束后