MATLAB和全局变量的使用?

Ben*_*sen 3 oop matlab coupling dicom

我正在为dicom图像和光谱学编写工具,我想在我正在制作的函数之间使用很多共享数据.我有我制作的GUI,不同的滑块和按钮使用了dicom文件中的大量这些共享数据.

我一直在使用全局变量来存储所有这些函数共享的信息.我目前有很多全局变量.如果可能的话,我被教导要避免全局变量,因为耦合增加了.在每个函数中读取dicom文件中的数据会更好吗?这似乎是多余的.将MATLAB用作面向对象的帮助吗?

Chr*_*ris 6

我建议使用应用程序数据结构.

应用程序数据是存储为由应用程序定义的结构的基本数据,通常附加到GUI应用程序或图形窗口.

要使用应用程序数据(appdata),请使用setappdatagetappdata函数.例如,假设您将GUI的句柄存储为hGUI,下面将随机矩阵添加到您的应用程序数据中,然后稍后检索它(从MATLAB文档中取出)

% Save matrix for later
matrix = randn(35);
setappdata(hGUI, 'mydata', matrix);

% Do some stuff...

% Retrieve my matrix, this could be in a different file to `setappdata`
myMatrix = getappdata(hGUI, 'mydata');
Run Code Online (Sandbox Code Playgroud)

您可以在应用程序数据中存储基本上任意的数据,只要hGUI引用您的GUI应用程序,您就可以存储它并从任何源文件中获取它.