在MATLAB中,不使用全局变量就可以将变量保存在内存中吗?

在MATLAB中,不使用全局变量就可以将变量保存在内存中吗?,matlab,global-variables,shared-memory,Matlab,Global Variables,Shared Memory,我有一个创建/加载变量的函数。此变量以后必须在另一个(分离的)函数中使用。但是,为了满足软件需求,我不能将此变量作为输入传递。 为了解决这个问题,我考虑使用全局变量。但是,出于几个原因,我想避免使用它们,特别是因为运行时间显著增加。 因此,我正在寻找一种方法来完成以下任务 function func1(x) global y y = some_long_computation(x); end 及 不使用全局变量。 有办法吗?一种可能的解决方案是使用: 为什么“软件需求”不传

我有一个创建/加载变量的函数。此变量以后必须在另一个(分离的)函数中使用。但是,为了满足软件需求,我不能将此变量作为输入传递。
为了解决这个问题,我考虑使用
全局变量。但是,出于几个原因,我想避免使用它们,特别是因为运行时间显著增加。
因此,我正在寻找一种方法来完成以下任务

function func1(x) 
    global y 
    y = some_long_computation(x);
end

不使用全局变量。

有办法吗?

一种可能的解决方案是使用:


为什么“软件需求”不传递变量?我想你已经回答了你自己的问题如果那不可能的话<代码>持久性
变量是唯一的选择,但不能跨不同的函数。函数可以是类的方法吗?您必须将它们称为
obj.func1(x)
而不是
func1(x)
。我认为它们可以。但我以前从未上过课。
function w = func2(z)
    global y
    w = some_other_stuff(y, z);
end
function main
    y = [];
    func1(3);
    w = func2(5);
    
    function func1(x)        
        y = some_long_computation(x);
    end

    function w = func2(z)
        w = some_other_stuff(y, z);
    end
end