matlab中global的用法

Matlab 中子函数不传参直接调用主函数global变量方法  
在一个m文件里要调用一个函数(自定义的),但是我希望这个函数能利用并修改workspace中的变量(m文件中的),可是函数的变量全是局部的,无法修改工作区的变量,该怎么办?

同时在“函数(自定义的)”和m文件中需要使用修改的变量申明为全局变量就可以了。就是变量前面加GLABAL
例如:
main.m
clc;clear

global Mat1

Mat1=5;
b=add(3);

子函数 add.m
function sum=add(x)
global Mat1;
sum=Mat1+x;

输出结果: b=8

使用golbal的优点:

1 传递大数据的参数
  如果通过函数传参数的方式的话,系统会浪费过多的时间在复制数据的时间上,如果采用global的方式共享数据的话代码的效率会大大提高

2 过多的常量需要传递
  如果每个量都作为函数函数的参数传递的话,代码参数列表就很长,如果采用global的话代码的可读性提高,函数调用也方便
---------------------
全排列函数:1到4的全排列

y_quanpailei.m:
function y_quanpailei(ct)
global ans1 a visit;
if ct == 4
a
ans1 = ans1 + 1;
return
end
for i = 1:4
if visit(i) == 0
a(ct+1) = i;
visit(i) = 1;
y_quanpailei(ct + 1);
visit(i) = 0;
end
end
end

 test.m

clc;
clear;
global ans1 a visit;
ans1 = 0;
a = zeros(1,4);
visit = zeros(1,4);
y_quanpailei(0)
ans1

  

最新文章

  1. input jquery 操作
  2. 微信nickname乱码及mysql编码格式设置(utf8mb4)
  3. redis cluster节点管理测试
  4. commonJS — DOM操作(for DOM)
  5. input type=file
  6. Oracle 课程八之性能优化之10053事件
  7. 『重构--改善既有代码的设计』读书笔记----Replace Method with Method Object
  8. SpringMVC03controller中定义多个方法
  9. 手工杀毒辅助软件(PC Hunter) V1.51 免费绿色版
  10. android studio sexy editor性感编辑器设置
  11. [0] C# 扩展方法(Extension Method)
  12. 色彩转换——RGB & HSV
  13. 配置ubuntu
  14. 浅谈jquery事件命名空间
  15. 浅谈solr
  16. 收藏:Non-direct与direct ByteBuffer区别
  17. [转] MachingLearning中的距离相似性计算以及python实现
  18. FPGA软件使用基础之ISE下载配置 XILINX 下载器使用
  19. [HDU5713]K个联通块
  20. select count(*) as total from(select count(*) from tab_cb_casim group by `card_no`) as cai;

热门文章

  1. How does the compilation and linking process work?
  2. 三剑客之awkd的基本使用
  3. dataTable转换成Json格式
  4. python3集合练习(set)
  5. Windows、Linux的环境变量
  6. Sql Server数据库之多表查询
  7. MySQL 8.0 中统计信息直方图的尝试
  8. Java环境变量配置----JDK开发环境及环境变量设置
  9. jquery如何阻止子元素继承父元素的事件(又称事件冒泡)
  10. 阿里云消息队列的C#使用http接口发送消息实例