lua模块几种形式

刚学,如果有问题看manual,不多说

两个文件说明下testlib.lua在当前目录下,maxmin.lua在当前目录的子目录lualibs下。

即./testlib.lua,./lualibs/maxmin.lua

测试过没有问题,大致可以清楚的阐述lua中的模块是怎么个样子,下面上代码:

testlib.lua

[python]  view plain copy
  1. local maxmin = require "lualibs.maxmin"  
  2. local test={3,23,63,32,1,2}  
  3. local min=maxmin.findmin(test)  
  4. local max=maxmin.findmax(test)  
  5. io.write("test array:")  
  6. for _,v in pairs(test)  
  7. do  
  8.     io.write(v," ")  
  9. end  
  10. io.write("\n")  
  11. print("min:" ,min)  
  12. print("max:" ,max)  

maxmin.lua

[python]  view plain copy
  1. --[[ type 1  
  2. maxmin={}  
  3.   
  4. local function min(a,b)  
  5.     if a < b then return a  
  6.     else return b end  
  7. end  
  8.   
  9. local function max(a,b)  
  10.     if a > b then return a  
  11.     else return b end  
  12. end  
  13.   
  14. function maxmin.findmax(...)  
  15.     local data = ...  
  16.     m = data[1]   
  17.     for _,v in ipairs(data)  
  18.     do  
  19.         m=max(m,v)  
  20.     end  
  21.     return m  
  22. end  
  23.   
  24. function maxmin.findmin(...)  
  25.     local data = ...  
  26.     m = data[1]  
  27.     for _,v in ipairs(data)  
  28.     do  
  29.         m=min(m,v)  
  30.     end  
  31.     return m  
  32. end  
  33.   
  34. return maxmin  
  35. --]]  
  36.   
  37. ---[[ type 2 无返回值,将table设置到package,之后外部require的时候照样能取到  
  38. local M={}  
  39. local modname = "lualibs.maxmin"  
  40. _G[modname]=M  
  41. package.loaded[modname]=M  
  42.   
  43. --下面5行也可都注释掉  
  44. --导出需要使用的全局变量到局部  
  45. local print = print  
  46. local ipairs= ipairs  
  47. --设置模块环境为当前环境,即不需要_G  
  48. local _ENV=M --lua 5.2,如果是之前版本则用setfenv(1,M)  
  49.   
  50. local function min(a,b)  
  51.     if a < b then return a  
  52.     else return b end  
  53. end  
  54.   
  55. function M.max(a,b)  
  56.     if a > b then return a  
  57.     else return b end  
  58. end  
  59.   
  60. function M.findmax(...)  
  61.     local data = ...  
  62.     m = data[1]  
  63.     for _,v in ipairs(data)  
  64.     do  
  65.         m=M.max(m,v)  
  66.     end  
  67.     return m  
  68. end  
  69.   
  70. function M.findmin(...)  
  71.     local data = ...  
  72.     m = data[1]  
  73.     for _,v in ipairs(data)  
  74.     do  
  75.         m=min(m,v)  
  76.     end  
  77.     return m  
  78. end  
  79. --]]  
  80.   
  81. --[[ type 3 使用lua5.1中的module函数,5.2没有module函数  
  82. module(...,package.seeall)  
  83. local function min(a,b)  
  84.     if a < b then return a  
  85.     else return b end  
  86. end  
  87.   
  88. local function max(a,b)  
  89.     if a > b then return a  
  90.     else return b end  
  91. end  
  92.   
  93. function maxmin.findmax(...)  
  94.     local data = ...  
  95.     m = data[1]   
  96.     for _,v in ipairs(data)  
  97.     do  
  98.         m=max(m,v)  
  99.     end  
  100.     return m  
  101. end  
  102.   
  103. function maxmin.findmin(...)  
  104.     local data = ...  
  105.     m = data[1]  
  106.     for _,v in ipairs(data)  
  107.     do  
  108.         m=min(m,v)  
  109.     end  
  110.     return m  
  111. end  
  112. --]]  
内容概要:本文档介绍了基于3D FDTD(时域有限差分)方法在MATLAB平台上对微带线馈电的矩形天线进行仿真分析的技术方案,重点在于模拟超MATLAB基于3D FDTD的微带线馈矩形天线分析[用于模拟超宽带脉冲通过线馈矩形天线的传播,以计算微带结构的回波损耗参数]宽带脉冲信号通过天线结构的传播过程,并计算微带结构的回波损耗参数(S11),以评估天线的匹配性能和辐射特性。该方法通过建立三维电磁场模型,精确求解麦克斯韦方程组,适用于高频电磁仿真,能够有效分析天线在宽频带内的响应特性。文档还提及该资源属于一个涵盖多个科研方向的综合性MATLAB仿真资源包,涉及通信、信号处理、电力系统、机器学习等多个领域。; 适合人群:具备电磁场与微波技术基础知识,熟悉MATLAB编程及数值仿真的高校研究生、科研人员及通信工程领域技术人员。; 使用场景及目标:① 掌握3D FDTD方法在天线仿真中的具体实现流程;② 分析微带天线的回波损耗特性,优化天线设计参数以提升宽带匹配性能;③ 学习复杂电磁问题的数值建模与仿真技巧,拓展在射频与无线通信领域的研究能力。; 阅读建议:建议读者结合电磁理论基础,仔细理解FDTD算法的离散化过程和边界条件设置,运行并调试提供的MATLAB代码,通过调整天线几何尺寸和材料参数观察回波损耗曲线的变化,从而深入掌握仿真原理与工程应用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值