如何在 MATLAB 的脚本文件中生成函数

Posted

技术标签:

【中文标题】如何在 MATLAB 的脚本文件中生成函数【英文标题】:How to generate a function inside a script file in MATLAB 【发布时间】:2017-01-21 23:03:48 【问题描述】:

我正在寻找一种在 MATLAB 中编写脚本文件的方法,该文件生成一系列函数并将它们分别保存在单独的 m 文件中。

更准确地说,假设你有一个脚本文件,你想生成 N 个不同的函数;像这样:

对于 i=1:N

第一步:做一些符号计算,找到fi

的表达式

第 2 步:定义函数 fi=fi(...)

第 3 步:将函数保存在 m 文件中,例如 fi.m

结束

到目前为止,我自己还没有找到任何线索。如果回答了以下两个问题,则此类代码将直接遵循:

1.如何在脚本文件中定义函数并自动保存在m文件中: 假设 y=f(x)=x^2 是在脚本文件中计算的符号关系;如何为它自动生成一个函数并保存在一个m文件中

2。如何将字符串用作文件名、函数名等:假设您在循环中为每个 i 创建一个字符串“fi”,并且您希望将此字符串用作函数名

提前感谢您的帮助

【问题讨论】:

到目前为止你尝试过什么?将您编写的内容转换为代码应该非常简单 不,不是。首先,您如何在脚本文件中编写一个简单的函数并告诉它将该函数保存在一个 m 文件中?第二,如果你不是计算和编写函数的人,你将如何定义一个函数? 我不太了解您刚才所说的内容,但这导致人们相信这个问题过于宽泛。请考虑改写它并展示您到目前为止所尝试的内容。见How to Ask 问题已修改。 【参考方案1】:

https://www.mathworks.com/help/symbolic/matlabfunction.html#bul5mb5-1

如果您想将符号函数转换为 MATLAB 函数文件,MATLAB 有一个函数(称为 matlabFunction)可以做到这一点。

该页面的示例:

syms x y z
r = x^2 + y^2 + z^2;
f = matlabFunction(log(r)+r^(-1/2),'File','myfile');

创建“myfile.m”:

function out1 = myfile(x,y,z)
%MYFILE
%    OUT1 = MYFILE(X,Y,Z)
t2 = x.^2;
t3 = y.^2;
t4 = z.^2;
t5 = t2 + t3 + t4;
out1 = log(t5) + 1.0./sqrt(t5);

【讨论】:

以上是关于如何在 MATLAB 的脚本文件中生成函数的主要内容,如果未能解决你的问题,请参考以下文章

matlab中生成随机数的相关知识

如何在matlab中生成概率3D图

在 MATLAB 中生成要保存在 .mif 文件中的正弦波

如何在 MATLAB 中绘制显示二维高斯函数总和的图像?

怎么在matlab中生成一个随机的强联通图

如何使用存储过程在 SQL Server 中生成表的数据脚本文件?