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