使用Matlab导入另一个.m文件

2024-03-09

我对 Matlab 还很陌生。我在 .m 文件中定义了一个函数,我想在另一个 .m 文件中的 .m 文件中使用该函数,并且我想从命令窗口运行最后一个 .m 文件的内容。

我应该如何去实现这个目标?

EDIT- 为了澄清起见,我有一个功能a inside a.m,以及里面的脚本b.m使用该函数a inside a.m。我想在里面运行这个脚本b.m从命令窗口,但我不知道该怎么做。 (作为旁注,我完全可以将脚本转换为b.m如果需要的话进入一个函数)

EDIT- 现在我只需要知道如何导入/加载 matlab 文件,仅此而已!


如果我正确理解你的情况,你的情况是这样的:

一个文件(‘上午’):

function results = A(parameters)
   % some code

一个文件(‘B.m’):

function results = B(parameters)
   % some code

你想使用函数A inside B,您可以从函数 B 内部调用该函数:

function results = B(parameters)
   % some code
   otherResults = A(otherParameters)

如果您的情况与 nimrodm 所描述的类似,那么您的A.m文件是这样的:

 function results = A(paramters)
    % some code
    function results = C(parameters)
        % code of function C
    end
 end
    function results = D(parameters)
        % code of function D
    end

没有办法直接访问C and D从外面A。如果您需要使用子功能 http://www.mathworks.com/help/techdoc/matlab_prog/f4-70666.html D在外面A,只需制作一个文件D.m含有

function results = D(parameters)
    % code of function D
end

最好从函数中删除相同的代码A.

For a 嵌套函数 http://www.mathworks.com/help/techdoc/matlab_prog/f4-39683.html C,在某些(但不是全部)情况下可以执行相同的操作,因为嵌套函数也可以访问函数的变量A。在最新版本的 MATLAB(我猜是 R2010b 或 R2011a)中,编辑器以青色突出显示函数和嵌套函数之间共享的变量。如果你不使用函数的变量A函数内部C,只需执行与函数相同的操作D。如果这样做,请将这些变量作为参数和/或返回值传递,并调整其余代码以反映这一点。测试您的代码,然后执行与以下相同的操作D.

最有可能的是,你不会有案例C,因为这是 MATLAB 中的一项高级功能。

然而,还有另一种情况,如果您不使用 MATLAB 函数,而是使用不同文件中的 MATLAB 脚本。您可以调用脚本(从命令行和另一个函数或脚本,只需通过其(文件)名称。

文件内容E.m:

% code for script E

文件内容F.m:

% some code
E;

使用该代码,您可以执行中的所有命令E从内部脚本F。当心E and F将共享它们的所有变量,因此如果您以类似的方式开始脚本clear all; close all; clc;,您不能从中传递任何变量F into E(并且您将丢失所有结果F调用前计算E.

在大多数情况下,使用函数而不是脚本更好,因此这也是解决这种情况的方法:将所有内容都变成具有合适参数和返回值的函数。

edit: 当你“改变”你的问题后,这很容易。

假设你有这个功能,我会使用不同的名称,因为这样更直观理解。你有这个功能ackermann文件里面ackermann.m您想从脚本中调用它bigScript.m.

文件ackermann.m包含阿克曼-彼得 http://en.wikipedia.org/wiki/Ackermann_function函数(作为示例):

function result = ackermann(m,n)
  if m == 0
      result = n + 1;
  elseif m > 0
      if n == 0
          result = ackermann(m-1,1);
      elseif n > 0
          result = ackermann(m-1,ackermann(m,n-1));
      else
          error('n has to be positive');
      end
  else
      error('m has to be positive');
  end
end

从大脚本内部,您可以调用该函数ackermann如下(如果您希望 m = 1 且 n = 1):

A = ackermann(1,1)

就这么简单,不需要加载任何东西。但您需要记住让函数“在您的路径中可用”,最简单的方法是将脚本和函数文件保存在同一目录中。

无论如何,我感觉您是 MATLAB 新手:如果您不知道函数的作用,只需键入help functionname(当然替换函数名称)到命令窗口中。你会注意到这个函数load是用来加载数据文件的,而不是 m 文件(因为路径中的 m 文件会自动使用)。

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

使用Matlab导入另一个.m文件 的相关文章

  • 将此 MATLAB 代码转换为 Python 时我做错了什么?

    我正在努力将生成波形的 MATLAB 代码转换为 Python 就上下文而言 这是原子力显微镜带激发响应的模拟 与代码错误无关 在 MATLAB 中从 r vec 生成的图形与我在 Python 中生成的图形不同 我是否正确地将 MATLA
  • 在 Matlab 中保存当前运行的脚本

    有没有办法保存Matlab中当前运行的脚本 我有一个脚本 它会自动备份一组脚本 但如果我更改了当前脚本 则保存的版本将过期 也许可以调用一些java Thanks 在 Yair Altman 网站上的某个地方 请参阅我的其他答案中的链接 他
  • 图像堆栈的最大强度投影

    我正在尝试重新创建该功能 max array 3 来自 MatLab 它可以获取 N 个图像的 300x300px 图像堆栈 我在这里说 图像 因为我正在处理图像 实际上这只是一个大的双数组 300x300xN 并创建一个 300x300
  • 检查Matlab中脚本需要使用的函数

    我有一个别人写的代码包 我正在运行一个脚本 它调用一些函数 这些函数又调用更多函数 等等 我想获取不是 MATLAB 内置函数但属于包的一部分的函数列表 我尝试使用matlab codetools requiredFilesAndProdu
  • Matlab Mex文件编译

    我正在尝试编译一个 mex 文件以在 matlab 中使用套接字连接 问题是它总是说我没有安装sdk或编译器 但我已经安装了 Visual Studio 2010 Express Visual Studio 2012 Express Vis
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • Matlab:如何更改矩阵的存储方式?从 1x1x3 到 1x3?

    我目前有 val 1 0 7216 val 2 0 7216 val 3 0 7216 但我想要 0 7216 0 716 0 721 我可以做什么样的操作来做到这一点 The reshape函数将在这里解决问题 Arrange the e
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 从开始/结束索引列表创建向量化数组

    我有一个两列矩阵M包含一堆间隔的开始 结束索引 startInd EndInd 1 3 6 10 12 12 15 16 如何生成所有区间索引的向量 v 1 2 3 6 7 8 9 10 12 15 16 我正在使用循环执行上述操作 但我想
  • 在matlab中绘制给定区域内(两个圆之间)的向量场

    我想在 Matlab 中绘制下面的向量场 u cos x x 0 y y 0 v sin x x 0 y y 0 我可以在网格中轻松完成 例如 x 和 y 方向从 2 到 2 x 0 2 y 0 1 x y meshgrid 2 0 2 2
  • 给定协方差矩阵,在Matlab中生成高斯随机变量

    Given a M x M期望的协方差 R 以及所需数量的样本向量 N计算一个N x M高斯随机向量 X在普通 MATLAB 中 即不能使用r mvnrnd MU SIGMA cases 不太确定如何解决这个问题 通常你需要一个协方差并且意
  • 检测数据集中线性行为的算法

    我已经发布了一个关于对数据集的一部分进行多项式拟合的算法 https stackoverflow com q 17595932 2320757前一段时间收到一些建议去做我想做的事 但我现在面临另一个问题 我尝试应用答案中建议的想法 我的目标

随机推荐

  • JPMS ServiceLoader 没有按预期为我工作

    JPMS服务加载器不符合我的预期 我正在尝试提供一个作为可执行 jar 的桌面程序使用默认服务 单个用户可能会超载 用户提供自己的服务类 并在命令行上将其名称作为参数给出 The service package eu ngong mySer
  • 使用 MySQL 通过 JOIN 获取 GROUP BY 中的 SUM

    我在 MySQL 5 1 38 中有两个表 products id name price department 1 Fire Truck 15 00 Toys 2 Bike 75 00 Toys 3 T Shirt 18 00 Clothe
  • 导轨 计数 选择不同的

    我正在记录用户观看一系列视频的次数 现在我正在尝试制作一个图表 显示每天观看任何视频的用户数量 UserVideoWatching where created at gt AND user id 1 month ago User eleph
  • tidytext、quanteda 和 tm 返回不同的 tf-idf 分数

    我正在尝试研究 tf idf 加权语料库 我希望 tf 是按文档划分的比例 而不是简单的计数 我希望所有经典文本挖掘库都会返回相同的值 但我得到了不同的值 我的代码中是否存在错误 例如 我是否需要转置对象 或者 tf idf 计数的默认参数
  • 迭代同步集合

    我在这里问了一个关于迭代 a 的问题Vector 我已经得到了一些好的解决方案的答复 但我读到了另一种更简单的方法 我想知道这是否是一个好的解决方案 synchronized mapItems Iterator
  • 在Python 3中编写一个函数将基数16转换为基数10

    有没有一种简单的方法来修改这段从基数 2 转换为基数 10 的代码 以将基数 16 转换为基数 10 我的目标是构建一个专用的转换函数 而不使用任何内置的 Python 功能进行计算 谢谢 BinaryVal int input Enter
  • ARC 中的“[[something keep] autorelease]”相当于什么?

    相当于什么 something retain autorelease in ARC 我遇到一个问题 类 DBRequest 调用我的委托来表示完成 然后 我的委托将 DBRequest 实例设置为 nil 即 dealloc 但是 当堆栈从
  • 双屏 HDMI 输出编程

    在我的搜索中 我发现 Android SDK 目前不支持控制 HDMI 端口活动和处理 HDMI 输出 尽管像摩托罗拉这样的某些设备制造商 不知道是否还有其他制造商也这样做 提供了 API 以实现更好的控制 下面是其中两个的链接 其中双屏链
  • 列出 Android 手机中所有已安装或支持的语言

    如何在 android 中以编程方式获取 语言和输入设置 下列出的所有已安装或支持的语言的列表 我已经使用了 Resources getSystem getAssets getLocales 但它只给了我该语言的代码 如 en en us
  • 如何将 Tomcat 嵌入到 Spring Framework MVC 应用程序中?

    我已经创建了所需的配置 控制器类 但我不清楚应该如何编排这些类来运行 tomcat 实例 我知道对于 Spring Boot 来说 这是使用 SpringApplication run 的问题 但我正在尝试探索 Spring Boot 之前
  • 在解决方案文件上调用自定义 MSBuild 目标

    我有一个解决方案文件 我的解决方案 sln 其中有一个项目 我的项目 vcxproj 我想执行一个自定义目标 我的自定义目标 通过解决方案在我的项目上 它看起来像这样 msbuild MySolution sln t MyCustomTar
  • 可空对象必须有一个值

    异常描述中有一个悖论 可空对象必须有一个值 这就是问题 我有一个DateTimeExtended班级 具有 DateTime MyDataTime int otherdata 和一个构造函数 DateTimeExtended DateTim
  • 契约异步和同步代码

    有很多问题询问是否混合异步和同步代码 大多数答案都表示 为异步方法公开同步包装器以及为同步方法公开异步包装器都是一个坏主意 然而 没有一个答案解决了必须混合异步和同步代码的特定场景 以及如何避免因此而出现的常见陷阱 请参见以下示例 clas
  • 如何设置Winsock UDP套接字?

    我想创建一个仅向客户端发送数据的 Winsock UDP 套接字 我希望内核为我选择一个可用的端口 另一方面 我想指出要使用哪个本地 IP 因为我正在运行一些网卡 我尝试过梳理迷宫般的套接字选项 以及将套接字地址中的端口绑定设置为 0 但均
  • 如何与Azure进行角色间通信?

    我完全不明白如何获得 Azure 角色 无论是 Web 角色还是辅助角色 来与另一个 Azure 角色进行通信 我查看了服务总线中继 其速度令人难以置信 在调试时将数据从一个角色获取到另一个角色大约需要 6 个小时 当我通过在云中运行的 W
  • 转置数据框

    有一种情况我有 gt sample df lt data frame id c 14129 29102 2191 2192 1912 color c blue red green purple blue day c monday wedne
  • 在 WooCommerce 中隐藏缺货相关产品

    在 WooCommerce 中我想隐藏缺货产品来自相关产品在单个产品页面中 是否可以 任何曲目都受到赞赏 这里给出的答案都不适合我 我相信woocommerce output related products args提到的过滤器不接受me
  • 持有自身引用的类

    浏览标准草案 n3242 我在第 9 2 条中发现了这句话 强调我的 非静态 9 4 数据成员不得具有不完整的类型 在 特别是 类 C 不应包含类的非静态成员 C 但是它可以包含一个指针或参考到类的对象 C 由此我认为定义一个这样的类是可以
  • 识别短文本的语言? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个文章列表 每篇文章都有自己的标题和描述 不幸的是 从我使用的来源来看 无法知道它们是用什么语言编写的 此外 文本并非完全用一种
  • 使用Matlab导入另一个.m文件

    我对 Matlab 还很陌生 我在 m 文件中定义了一个函数 我想在另一个 m 文件中的 m 文件中使用该函数 并且我想从命令窗口运行最后一个 m 文件的内容 我应该如何去实现这个目标 EDIT 为了澄清起见 我有一个功能a inside