使用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 oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • MATLAB 除法...29/128 应该返回 0 吗?

    我真的不认为这是一个精度问题 答案应该是0 226左右 这是确切的代码 val I i j bucketSize pos val bucketSize I只是我从中获取值的矩阵 以下是 MATLAB 的输出 val 29 bucketSiz
  • 如何选择面积最大的对象?

    我用过bwconvhull检测图像的某个部分 正如您在图像中看到的那样 有许多具有特定质心的对象 我想做的是检测面积最大的物体 左起第一个大物体 并忽略其他物体 我应该遵循哪种方法 我将非常感谢您的帮助 以下是代码 由于我仍在努力 所以写得
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 更新:随机将行添加到矩阵中,但遵循严格的规则

    以下是一个更大的矩阵的一部分 0 1 0000 1 0000 77 0000 100 0000 0 0 2500 0 1 0000 1 0000 72 0000 100 0000 0 2500 0 2500 0 1 0000 1 0000
  • MATLAB parfor 和 C++ 类 mex 包装器(需要复制构造函数?)

    我正在尝试使用概述的方法将 C 类包装在 matlab mex 包装器中here http www mathworks com matlabcentral newsreader view thread 278243 基本上 我有一个初始化
  • 考虑预分配速度[重复]

    这个问题在这里已经有答案了 我正在做以下事情 for i 1 m index 0 for j 1 n index index values i j 2 j 1 if j 1 symbol chip chip values index 1 e
  • 绘制布朗运动 matlab

    首先 我只想说我不太习惯使用matlab 但我需要一个作业 我应该创建一个 布朗运动 我的代码目前如下所示 clf hold on prompt Ge ett input size input prompt numParticles inp
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 使用不同的背景颜色保存 MATLAB 图窗

    我想打印一个带有深色背景和白色标签的 MATLAB 图 如果我使用print or saveas命令我不知何故失去了颜色 绘图符号再次变暗 背景变为白色 points rand 100 3 plot3 points 1 points 2 p
  • MATLAB问题:在图块中引用变量的值[重复]

    这个问题在这里已经有答案了 可能的重复 matlab 绘图标题中的变量 https stackoverflow com questions 5629458 matlab variable in plot title 我想在图中引用 m 文件
  • 拟合具有扭曲时基的正弦波

    我想知道在 Matlab 中拟合具有扭曲时基的正弦波的最佳方法 时间失真由 n 阶多项式 n 10 给出 其形式为t distort P t 例如 考虑失真t distort 8 12t 6t 2 t 3 这只是幂级数展开 t 2 3 这将
  • Matlab strcat 不返回字符串?

    imgstr 无法识别 strcat 的输出字符串 homedir C Users images for img 01 bmp 02 bmp 03 bmp imgstr strcat homedir img I imread imgstr
  • 计算向量的导数

    我有以下函数 维维亚尼曲线 Phi t cos t 2 cos t sin t sin t 只需检查它是否有效 s linspace 0 T 1000 plot3 cos s 2 cos s sin s sin s 如何推导函数Phi 可能
  • MATLAB 问题中的 Parfor

    为什么我不能使用parfor在这段代码中 parfor i 1 r for j 1 N r xr j N r i 1 x i r j 1 end end 这是错误 错误 parfor 中的变量 xr 无法分类 请参阅 MATLAB 中的并行
  • 在matlab中融合2个以上的图像

    在 MATLAB 中 如何融合两个以上的图像 例如 我想要做什么imfuse但对于超过 2 个图像 使用两张图像 这是我的代码 A imread file1 jpg B imread file2 jpg C imfuse A B blend
  • Matlab 的 fftn 在多线程下变得更慢?

    我可以访问 12 核机器和一些严重依赖 fftn 的 matlab 代码 我想加快我的代码速度 由于 fft 可以并行化 我认为更多的内核会有所帮助 但我看到的恰恰相反 这是一个例子 X peaks 1028 ncores feature
  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 如何使用神经网络保存 Sift 特征向量进行分类

    SIFT 特征的 Matlab 实现发现于http www cs ubc ca lowe keypoints http www cs ubc ca lowe keypoints 在 stackoverflow 的帮助下 我想将功能保存到 m

随机推荐

  • 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