oop - MATLAB和全局变量的使用?

标签 oop matlab dicom coupling

我正在编写一个用于 dicom 图像和光谱学的工具,我想在我制作的函数之间使用很多共享数据。我有自己制作的 GUI,不同的 slider 和按钮使用来自 dicom 文件的大量共享数据。

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

最佳答案

我建议使用 application data结构。

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

要使用应用程序数据 (appdata),请使用 setappdatagetappdata 函数。例如,假设您有一个存储为 hGUI 的 GUI 句柄,下面的代码会向您的应用程序数据添加一个随机矩阵,然后稍后检索它(从 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');

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

关于oop - MATLAB和全局变量的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9119489/

相关文章:

oop - php 日期时间差异返回零

asp.net - 何时使用共享变量

java - DDD - 实体的值对象风格

algorithm - QuickSort 的迭代实现中的无限循环?

c++ - 如何同时在 Debug 和 Release 版本中安装 Dcmtk

java - 在JavaFX按钮中显示dicom

java - 为什么在 Java 中变量在 ArrayList 重新分配时不会失效?

arrays - 根据计数进行逐元素数组复制

matlab - 在 matlab 中创建径向基函数核矩阵

python - 无法使用 Python 打开神秘的 DICOM 文件