1. 首页
  2. 考试认证
  3. 其它
  4. 用全局内存分享数据-大学物理知识点总结

用全局内存分享数据-大学物理知识点总结

上传者: 2024-07-27 05:45:12上传 PDF文件 52.68MB 热度 14次

用全局内存分享数据我们已经看到了,函数与程序之间交换数据是通过参数列表来完成的。当一个函数被调用时,每一个实参都会被复制,而这个复制量将会在函数中用到。对于参数列表还有一些补充,MATLAB函数与每一个参数或基本工作区通过全局内存交换数据。全局内存是指内存的一种特殊类型,它能够被所有的工作区访问。如果一个变量在函数中被声明全局变量,那么它将占用的是全局内存,而不是本地工作区。如果相同的变量在另一个函数中被声明为全局变量,那么这个变量所占有内存区域就是第一个函数中的相同变量。声明有全局变量的脚本或函数将有办法访问相同的值,所以全局变量为函数之间分享数据提供了一个方法。

你可能会问,"这有什么实际应用呢?" 举个例子,你可以查看Matlab高级编程技巧分享来了解更多关于全局变量的应用技巧。为了方便,全局变量将在函数开头被声明,但是实际上没有这个必要。好的编程习惯最是把全局变量声明在函数的开头,这样可以区别于本地变量。每一个全局变量在函数第一次使用之前必须声明,如果在本地工作区中已经被创建,那么声明为再次声明全局变量将会产生错误。为了避免这种错误,在函数中的初始注释行之后和第一个可执行性语句之前声明全局变量。

你知道吗?这种方法尤其适用于在许多函数分享大容量数据,这样全部的数据在每一次被函数调用时就不必再复制了。用全局变量在函数之间交换数据的不利一面是函数只能为特定的数据工作。通过输入数据参数交换数据的函数能用不同的参数调用它,而用全局变量进行数据交换的函数必须进行修改,以许它和不同的数据进行工作。在一组相关的函数之间共享隐藏数据时全局变量也非常有用,而这些隐藏数据对所调用的程序来说却是不可见的。

想要更深入地了解如何避免使用全局变量的编程技巧?可以查看这篇精彩编程与编程技巧_避免使用全局变量

顺便一提,如果你对MATLAB编程还有其他疑问,比如按值传递机制或者带有选择性参数的函数,可以参考以下示例:

第6题和第7题分别展示了MATLAB函数的调用及其错误:

  1. out = test1(6); function res = test1(x, y) res = sqrt(x .^2 + y .^2);

  2. out = test2(12); function res = test2(x, y) error (nargchk(1,2,nargin)); if nargin == 2 res = sqrt(x .^2 + y .^2); else res = x; end

这些示例展示了如何正确使用和调用函数,更多细节可以在MATLAB编程技巧中找到。

下载地址
用户评论