如何在Matlab中为一些函数声明一个全局变量?

JAN*_*JAN 5 variables matlab global

我有一个histShape.m带函数的文件histShape,还有一些其他函数.

代码的一般视图是:

%
function [outputImage] = histShape(srcimg, destimg)

    PIXELS = 255 + 1;

     ....
     ....
end



%
function [outputImage] = normalizeAndAccumulate(inputImage)

   PIXELS = 255 + 1;

....
....

end

%
function [pixels] = getNormalizedHistogram(histogram , inputImage)


   PIXELS = 255 + 1;

  ....
  ....

end
Run Code Online (Sandbox Code Playgroud)

我可以使用,global x y z; 但我正在寻找一种不同的方式.

我想将变量声明PIXELS为全局变量,我该怎么做?

问候

din*_*elk 11

您可以使用以下关键字访问MATLAB函数内的全局变量global:

function my_super_function(my_super_input)
    global globalvar;

    % ... use globalvar
end
Run Code Online (Sandbox Code Playgroud)

您通常会使用相同的关键字在函数外的脚本中声明全局变量:

% My super script
global globalvar;
globalvar = 'I am awesome because I am global';
my_super_function(a_nonglobal_input);
Run Code Online (Sandbox Code Playgroud)

但是,这不是绝对必要的.只要全局变量的名称在函数之间是一致的,您就可以通过global globalvar;在您编写的任何函数中定义来共享同一个变量.

您需要做的就是global PIXELS;在每个函数的开头定义(在为其赋值之前).

请参阅此处的官方文档.