繁体   English   中英

MatLab:函数期间分配的变量可用于另一个函数

[英]MatLab: Variable assigned during function can be used in another function

我有一个输出q的函数。 此函数将生成矩阵A,以便找到q。 矩阵A是100x100x100,因此运行此代码需要很长时间,我想用A中的信息进行(大量)其他计算,而不必一遍又一遍地运行该代码。

有没有办法让q和A(q的尺寸为100x1)可以在另一个函数中访问而不必每次都运行原始函数?

我虽然使用“全球”,但我不确定它是如何工作的。

您可以使用

assignin('base', 'var1', var1)

在基础工作空间中分配变量var 这将允许您将其解析为其他功能,它将持续存在。

或者你可以简单地返回它:

function [other_vars var1] = theFunk(input)

然后在其他函数中使用它可以使它成为全局函数:

global VAR_GLOBAL = var;

并在您的功能使用:

function [stuff] = someOtherFunction(input)
    global VAR_GLOBAL
    % Do some stuff with VAR_GLOBAL

或者只是将其传递给您的其他功能:

function [stuff] = someOtherFunction(input, var1)

在我看来,你的功能是做两件事,需要一些重构......

考虑将计算矩阵A的部分提取到单独的函数中。 另一个函数将生成的矩阵A作为输入并计算输出q 否则称为“Extract Till You Drop”原则:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM