我有一个输出q的函数。此函数将生成矩阵A,以便找到q。矩阵A是100x100x100,因此运行此代码需要很长时间,我想用A中的信息进行(大量)其他计算,而不必一遍又一遍地运行该代码。
有没有办法让q和A(q的尺寸为100x1)可以在另一个函数中访问而不必每次都运行原始函数?
我虽然使用" global"但我不确定这是怎么回事。
答案 0 :(得分:2)
您可以使用
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)
答案 1 :(得分:1)
在我看来,你的功能正在做两件事,需要一些重构......
将extracting计算矩阵A
的部分考虑到一个单独的函数中。另一个函数将生成的矩阵A
作为输入并计算输出q
。否则称为"Extract Till You Drop"原则:)