lua自学基础1

JavaScript、Lua语言基础、电脑脚本、手机免ROOT免越狱脚本开发免费视频教程 阅读详情

字符串定义

  1. "[["用表示多行字符串
  2. ==nil时直接释放


函数

  1. 函数可作为参数传递 
  2. 可变参数函数

myprint=function(p)
	print("this is"..p);
end

function add(a1,a2,x)			--函数可作为参数传递
	c=a1+a2;
	x(c);
end

add(4,5,myprint);
function average(...)					--可变参数函数,还有print之类
	res=0;
	local arg={...}						--arg是默认表 要来获取参数
	for k,v in pairs(arg)do
		res=res+v;						--arg最后一个值表示表内参数个数,要先用本地定义来消除最后一值
	end
	print(res)
	print(#arg)
end

average(1);
average(12,56);
average(13,56,58);



表

  1. table内存使用特性,当把定义好的table1赋值给 table2时,两个同时引用同一个内存区域,并不是两个区域同种类型
  2. insert指定索引添加时索引后面 会向后移动
  3. remove指定索引会向前移动
  4. 赋值nil 制定值会为 nil
  5. table排序:自定义函数和迭代
function max(x)						--自定义取得最大值函数
	c=-10^10000;
	for i=1,#x do

	if(x[i]>=c) then
		c=x[i];

	end
	i=i+1;
	end
	return c;
end

--]]

function max2(xx)					--用迭代和遍历取得最大值
local cc=-1000;
	for v,k in pairs(xx) do
		if(cc<=k)then
			cc=k;
		end
	end
	return cc;
end


print(max2(mytab1));
--[[
table.sort(mytab1);
print(mytab1[#mytab1]);



变量

  1. a,b=20,30; --变量可以连续赋值
  2. a,b=b,a; --可以交叉转换
  3. function test()
    return 2,3; --函数可以返回多个值
    end
  4. bb=max; --把函数赋值给变量
    c1=max(5,1); --把函数的值赋值给变量
循环
1 while 
	a=1;
	while (a<=20) do
		if(a%2==1)then
			print(a);
		end
		a=a+1;
	end
2 for
for var=1,10,2 do				--数值型var=start,end,step(递增值)默认为1
	print(var);
end

tab={"av","fr","cv","ev"};
for de,dc in pairs(tab) do		--泛型 相当于foreach,(pairs)
	print(de,dc);
end
3 repeat
a=1;
repeat							--相当于 do while;
								--不过while满足条件时执行 until  满足条件 跳出
	print(a);
	a=a+1;
until(a>10)

判断
if(i==50)then --注意格式if后面要加then;else不用
print("i==50");
elseif(i==100) then --elseif也要加


运算符
  1. 转义字符
  2. 字符串操作
print("hello\nworld");					--转义字符\\==\;  \",\'==",'
print("c:\\you\\hold");
print("my name is \"liming\"")

str="my name is SiKi"					--字符串操作
str1=string.upper(str);					--转大写
str2=string.lower(str);					--转小写

str3=string.gsub(str,"i","666",1);		--替换(替换几次)
index=string.find(str,"name");		--索引查询
str5=string.reverse(str);				--颠倒


print(str1,str2,str3,"\n",index,str5)


str6=string.format("%02d+%d=%d",1,2,(1+2));

print(str6);

str7=string.format("最后%s==%s","终于","爱");
print(str7);

--]]


--[[
s1=string.char(97,98,55);			--数字转字符
s2=string.byte("Ab");				--字符转数字 默认为第一个
print(s1,s2);

str=string.len("agb");
print(str);


for word in string.gmatch("he is @teacher","%@") do	--正则
	print(word);
end


print(str4);


数组
  1. 没有键的表相当于数组
  2. 多维数组
array={{},{},{}}

for i=0,4 do							--多维数组创建
	array[i]={};
	for j=0,2 do
		array[i][j]=string.format("%d%d",i,j);
	end
end


for i=0,4 do

	for j=0,2 do
		print(array[i][j]);
	end
end
迭代器
  1. 内置迭代器
  2. 自定义迭代器
array={"lua","C++","oc"}			--迭代器,pairs 遍历所有键值对,ipairs遍历所有索引 当值等于nil是停止

for o,v in pairs(array) do
	print(o,v);
end
array[2]=nil;

for o,v in ipairs(array) do
	print(o,v);
end


function square(state,control)		--自定义 迭代函数(状态函数,控制函数)
	if(control<=state) then
		control=control+1;
		return control,control*control;
	end
end


for d,f in square,9,0 do
	print(d,f)
end

全部
--[[
print();
--]]
--[[
print(type("hello world"));
print (type(10));
print(type(10.2));
print(nil);
print(x);
print (s);
print(type(type));
--]]
--[[table
tab1={key01="value",key02="bb"};
print(tab1.key01,tab1.key02)
tab1=nil
tab1.tab1=nil;
print(tab1)
--]]

--boolean
--[[
if nil then
print(true)
else
print(false)
end
--]]

--numbwe
--[[
print(type(0.2e-55));
--]]

								--"[["用表示多行字符串

--]]


--[[
print(html);--#号代表字符统计


print('6'+'3');
print('3.2e-1'*'6')
print('s'..'b');--".."代表字符拼接



tab1={}
tab2={key1="sdsd",key2="sbsb"}
tab3={"apple","banana","grape","pear"}
print(tab2.key1)
print(tab1);
print(tab3[1])    --lua数组下标从1开始
for tab,val in pairs(tab3) do
	print(tab..":"..val);
end

tab3[1]="appleapple"
tab3[2]=nil;				--'==nil时直接释放
tab3[100]="sssss"
for tab,val in pairs(tab3)do
print(tab..":"..val);
end
--表的下标不会填补空缺,可以不连续

--]]

--]]

--[[ 递归函数
s1=1;
function bb(n)
	if(n==1)then
	return s1;
	else
	return n*(bb(n-1));		--return的时候还要调用==5*bb(4)==5*4*3*2*1
	end
end
print(bb(5));
bb2=bb;

print(bb2(6))

--]]

--[[
function x1(tab,fun)			--函数可看作变量调用在tab获取键值对,在fun输出
	for key,val in pairs(tab) do
		fun(key,val);
	end
end
tab={k1="11",k2="12"}
function fun(v,k)
	print(v,k);
end
x1(tab,fun);

function fun1(v,k)
	print(v..".."..k);
end

x1(tab,fun1);


x1(tab,function(v,k)				--虚函数。在调用里面定义函数不用函数名
print(v,k)
end
)

--]]

--[[
a=5;a="hello";b=20;
print(a,b);

function test()
	local b=10;
	a=100;
end
test()								--函数必须调用里面的变量才会起作用
									--局部变量在当前语句结束时就会自动释放
print(a,b);


do
	local a=10;						--局部变量省资源
	local b=11;
	print(a,b);
end
print(a,b);


--]]

--[[
a,b=20,30;							--变量可以连续赋值
print(a,b);
a,b=b,a;							--可以交叉转换
print(a,b);
function test()
	return 2,3;					--函数可以返回多个值
end

c=test();
print(c);
c,d=test();
print(c,d);

a,b=20;
print(a,b)

--]]

--[[
a=1;
while (a<=20) do
	if(a%2==1)then
		print(a);
	end
	a=a+1;
end

--]]

--[[

for var=1,10,2 do				--数值型var=start,end,step(递增值)默认为1
	print(var);
end

tab={"av","fr","cv","ev"};
for de,dc in pairs(tab) do		--泛型 相当于foreach,(pairs)
	print(de,dc);
end

a=1;
repeat							--相当于 do while;
								--不过while满足条件时执行 until  满足条件 跳出
	print(a);
	a=a+1;
until(a>10)


--]]

--[[

for i=1,10 do
	for j=1,i do
		print(j);
	end
end

for i=1,10 do
	j=1;
	while(j<=i)do
		print(i);
		j=j+1;
	end
end


--]]

--[[

i=50
if(0) then
print("0 is true");
end

if(i==50) then
print("i==50");
else
print("i!=50");
end

if(i==50)then					--注意格式if后面要加then;else不用
	print("i==50");
elseif(i==100) then			--elseif也要加
	print("i==10");
else
print("want not write");
end

--]]


--[[

local function max(num1,num2)
	if(num1>num2)then
		return num1;
	else
		return num2;
	end
end
print(max(50,40));

bb=max;							--把函数赋值给变量
c1=max(5,1);					--把函数的值赋值给变量
print(c1);


myprint=function(p)
	print("this is"..p);
end

function add(a1,a2,x)			--函数可作为参数传递
	c=a1+a2;
	x(c);
end

add(4,5,myprint);

function temp()					--函数可返回多个值;
	return 10,20,30;
end

a,b,c=temp();
print(a,b,c);


--]]

--[[

function average(...)					--可变参数函数,还有print之类
	res=0;
	local arg={...}						--arg是默认表 要来获取参数
	for k,v in pairs(arg)do
		res=res+v;						--arg最后一个值表示表内参数个数,要先用本地定义来消除最后一值
	end
	print(res)
	print(#arg)
end

average(1);
average(12,56);
average(13,56,58);


--]]

--[[

a=10;b=12;							--关系运算符!= 等于~=
if(a~=b) then
	print("not equip");
end


print(false and true);				--逻辑运算符(|| && !) and or not
print(false or true)
print(not false);


tab={32,33,56}						--#tab取得的是最大索引值
print(#tab);
tab=nil
tab={}
tab={key1="1",key2="2"}				--而且必须数组索引 下标为1.2.3
print(#tab);
tab=nil;
tab={}
tab[1]=1;
tab[2]=2;
tab[4]=4;
print(#tab);

--]]

--[[

print("hello\nworld");					--转义字符\\==\;  \",\'==",'
print("c:\\you\\hold");
print("my name is \"liming\"")

str="my name is SiKi"					--字符串操作
str1=string.upper(str);					--转大写
str2=string.lower(str);					--转小写

str3=string.gsub(str,"i","666",1);		--替换(替换几次)
index=string.find(str,"name");		--索引查询
str5=string.reverse(str);				--颠倒


print(str1,str2,str3,"\n",index,str5)


str6=string.format("%02d+%d=%d",1,2,(1+2));

print(str6);

str7=string.format("最后%s==%s","终于","爱");
print(str7);

--]]


--[[
s1=string.char(97,98,55);			--数字转字符
s2=string.byte("Ab");				--字符转数字 默认为第一个
print(s1,s2);

str=string.len("agb");
print(str);


for word in string.gmatch("he is @teacher","%@") do	--正则
	print(word);
end


print(str4);

--]]

--[[

tab={};

for i=-2,2  do						--tab表的索引可以为负数
	tab[i]=i;
end

for i=-2,2  do
	print(tab[i]);
end


print(tab.value);

--]]

--[[

array={{},{},{}}

for i=0,4 do							--多维数组创建
	array[i]={};
	for j=0,2 do
		array[i][j]=string.format("%d%d",i,j);
	end
end


for i=0,4 do

	for j=0,2 do
		print(array[i][j]);
	end
end


--]]


--[[

array={"lua","C++","oc"}			--迭代器,pairs 遍历所有键值对,ipairs遍历所有索引 当值等于nil是停止

for o,v in pairs(array) do
	print(o,v);
end
array[2]=nil;

for o,v in ipairs(array) do
	print(o,v);
end


function square(state,control)		--自定义 迭代函数(状态函数,控制函数)
	if(control<=state) then
		control=control+1;
		return control,control*control;
	end
end


for d,f in square,9,0 do
	print(d,f)
end

--]]

--[[

tab1={};
tab1["s1"]="s1";
tab1[2]="s2";

for v,k in pairs(tab1) do
	print(v,k);
end

tab2=tab1;								--table内存使用特性,当把定义好的table1赋值给 table2时,两个同时应用同一个内存区域,并不是两个区域同种类型

tab1=nil;




for v,k in pairs(tab2) do
	print(v,k);
end


--]]



--[[
mytab={"java","oc","a","a++"}

print(table.concat(mytab));

mytab[#mytab+1]="boo";

for v,k in pairs(mytab) do
	print(v,k);
end

table.insert(mytab,"PHP");
for v,k in pairs(mytab) do
	print(v,k);
end


table.insert(mytab,2,"F++");

for v,k in pairs(mytab) do			--insert指定索引添加时索引后面 会向后移动
	print(v,k);
end


table.remove(mytab,2)

for v,k in pairs(mytab) do			--remove指定索引会向前移动
	print(v,k);
end


mytab[2]=nil;						--赋值nil 制定值会为 nil

for v,k in pairs(mytab) do
	print(v,k);
end

--]]


--[[

mytab={"a1","b2","c2"}				--table 排序

table.sort(mytab);

for v,k in pairs(mytab) do
	print(v,k);
end


mytab1={54,85,96,1}

print(#mytab1)

--]]
--[[
function max(x)						--自定义取得最大值函数
	c=-10^10000;
	for i=1,#x do

	if(x[i]>=c) then
		c=x[i];

	end
	i=i+1;
	end
	return c;
end

--]]
--[[

function max2(xx)					--用迭代和遍历取得最大值
local cc=-1000;
	for v,k in pairs(xx) do
		if(cc<=k)then
			cc=k;
		end
	end
	return cc;
end


print(max2(mytab1));

--]]
--[[
table.sort(mytab1);
print(mytab1[#mytab1]);
--]]








Lua 从基础入门到精通(非常详细) Lua 是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放。这意味着什么呢?这意味着Lua虚拟机可以很方便的嵌入别的程序里,从而为应用程序提供灵活的扩展和定制功能。而整个Lua虚拟机编译后仅仅一百余K,经过适当的裁剪还能做到更小,十分适合嵌入式的开发。Lua 官网Lua 5.3 参考手册 - 目录Lua 在线调试工具LuatOS 在线模拟 - lua在线测试。 阅读详情

相关推荐

Lua语言的学习路线

Lua最早是在1993年由巴西的天主教大学(Pontifical Catholic University of Rio de Janeiro)开发,最初是作为一个扩展语言来满足需要嵌入性和可扩展性的应用程序的需求。Lua的设计原则是轻量级、快速且易于学习。

2501_90216450的博客 1331

【Linux】Lua脚本语言

【Linux】Lua脚本语言

qq_38377525的博客 2049

学习Lua必备的手册

此Lua手册为中文翻译版,可以和Lua书籍配套使用!!!!!!!!!!!!!!!!!!!!!

Lua学习笔记-1

Lua 简介 Lua也是一种脚本语言,和Shell类似。学习这个是因为在使用Redis做分布式锁的时候有一种Lua的写法,所以就简单的学习一下这个脚本语言。 Lua的安装 可以参考菜鸟教程的安装步骤:安装教程。这里的安装方式其实是源码安装,就是把源码下载下来自己编译一遍。如果是Linux新手或者macos新手,注意两点内容: 1:在使用curl下载源码的时候,最好新建一个目录,因为curl会把下载下来的文件放在当前目录下。 2:执行make Install 的时候可能会出现Permission Denied

JustDreamer的博客 355

lua学习课件

lua学习课件,很详细,打开需要密码,请私聊我获取,。

揭秘N531:这颗不到2毛钱的国产栅极驱动器,如何成为功率开关的“全能搭档”?

本文深入解析了国产栅极驱动器N531如何成为功率开关的“全能搭档”。针对MOSFET和IGBT等电压驱动器件在实际应用中需要大电流实现快速开关的核心痛点,N531凭借±500mA的强劲驱动能力、宽电压供电及高兼容性,有效降低开关损耗,提升系统效率与可靠性。文章通过实战案例与设计指南,阐述了这颗高性价比芯片在简化设计、降低成本方面的显著优势。

z5a6b的博客 620

Lua中在字符串指定位置插入字符

Lua中在字符串指定位置插入字符【放出代码 【放出代码 function string_insert(str,index,insertStr) local len = #str --获取字符串长度 local cnt = 0 local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc}; --{0,192,224,240,248,252} local indx = -len --初始索为负的长度,倒着遍历

qq_42541751的博客 3317

数字IC时序约束实战:深入解析clock_uncertainty的设置策略与后端影响

本文深入探讨数字IC设计中clock_uncertainty的设置策略及其对后端实现的影响。通过分析时钟不确定度的组成(包括clock_skew、clock_jitter和margin),并结合实际项目经验,详细介绍了在不同设计阶段(综合、布局布线、签核)的动态调整方法。文章还提供了工程化处理参数来源、跨时钟域特殊处理以及优化时序收敛的实用技巧,帮助工程师提升数字IC设计的可靠性和性能。

weixin_29284657的博客 229

零基础小白如何自学Lua?

学习Lua作为零基础小白,虽然可能会有一些挑战,但通过合理的步骤和资源,可以逐步掌握这门编程语言。

小宝哥Code的专栏 2293

利用HFSS仿真优化圆极化微带天线的耦合馈电设计

本文深入探讨了利用HFSS仿真软件优化圆极化微带天线性能的关键方法。通过对比传统直接馈电与耦合馈电方式,详细阐述了耦合馈电在提升阻抗匹配、改善轴比带宽及增强设计鲁棒性方面的显著优势。文章结合FR4板材的实战案例,逐步演示了在HFSS中建立模型、进行参数扫描与圆极化性能优化的完整流程,为设计高性能、高纯度的圆极化天线提供了实用指南。

weixin_29233333的博客 547

江科大51单片机笔记【1】单片机及开发板介绍

单片机,Micro Controller Unit,简称MCU,内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能单片机的任务是信息采集(传感器)、处理(CPU)和硬件设备(电机、LED)的控制单片机算是一个袖珍版计算机,是一个完整的计算机系统,成本低体积小结构简单单片机的使用领域:智能仪表、实时工控、通讯设备、导航系统、家用电器等。

2301_80195807的博客 834

Lua自学1

最近准备自学Lua 主要是Lua里面的热更新对于在以后的工作还有实操中比较适用,而且广泛,这是一个轻量级又强大的脚本。 首先下载环境。我是在菜鸟教程里面去下载的 在里面搜索lua就有下载还有环境 大概是2,30M很小 下载安装之后是这俩 第一个打开就是直接控制台输出 第二个打开之后就是一个类似于文本的东西,好处的有一些记录运行和特殊字符串变色等功能,也就类似于一个小巧的编译器把 然后就开始试着编译一下 有一个特点 lua里面一行的末尾;(分号)是可要可不要的,可以直接输入 而且直接编译输入就好了 比较方便

weixin_43511871的博客 284

固定资产报废的损失鉴定怎么做?

在社会生产的日常中,企业经常会遇到固定资产报废的损失鉴定,那么怎么去做鉴定?哪些情况下能申请固定资产报废损失鉴定呢? 今天,华碧鉴定就和大家说一说固定资产报废损失鉴定那些事儿。 符合下列条件之一的固定资产可申请报废: 1、使用年限过长,功能丧失,完全失去使用价值,或不能使用并无修复价值的; 2、产品技术落后,质量差,耗能高,效率低,已属淘汰且不适于继续使用,或技术指标已达不到使用要求的; 3、严重损坏,无法修复的或虽能修复,但累计修理费已接近或超过市场价值的; 4、主要附件损坏,无.

weixin_50362670的博客 2116

自学lua笔记

xlua自学笔记

weixin_44066354的博客 305

为分析表明卡诺电池技术(或热泵式储电技术)-是目前最佳的储能技术!!!-2021年

卡诺电池(Carnot Battery)是一种基于热力学循环的储能技术,其核心原理是通过热力循环将电能转化为热能存储,并在需要时将热能重新转换为电能输出。这种技术得名于热力学中的卡诺循环原理,由法国工程师卡诺于1824年提出。

qq_15963745的博客 656

GPU 运维实战:H100/H800/B300 换卡与压测

(烧多久、看什么、什么算合格)。文末还给了一个能直接跑的验收判定脚本,三个真实场景的裁决输出都在。

老韩的Linux云计算架构师进阶之路 271

超详细Redis入门教程——Lua 脚本简介与基础语法

本文小新为大家带来 Lua 脚本简介与基础语法 相关知识,具体内容包括Lua 简介,Linux 系统的 Lua(包括:Lua 下载,Lua 安装,Hello World),Lua 语法基础(包括:注释,数据类型,标识符,运算符,函数,流程控制语句,循环控制语句)等进行详尽介绍~

小新要变强的博客 3504

TC3XX - MCAL知识点(二十四):UART MCAL配置及代码实战

UART驱动程序负责按照UART协议提供通信服务。ASCLIN模块为异步通信提供硬件支持,实现UART协议。UART驱动程序提供了配置、初始化、数据传输、接收等功能,还提供了中止传输和中止接收 abort等可选特性。软硬件匹配关系如下:UART驱动程序使用ASCLIN进行数据的传输和接收。驱动程序使用的关键硬件功能特性是:1、全双工异步工作模式2、支持半双工工作模式3、16字节的TXFIFO4、16字节的RXFIFO5、2 ~ 16位数据帧6、校验位生成/检查7、一个或两个停止位。

梦想技术家 1832

lua基础自学

看过很多书,发现编程都是从hello world开始。 lua的自学也是如此。 创建hello.lua 输入print("hello world")并保存。   cmd下,指令为lua.exe hello.lua lua编译器下,直接输入print("hello world") 最终结果显示 上面是最基础的对编译器的使用。 在cmd终端下,输入lua

NeroF的博客 390

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Lua自学,含基础语法与简单练习

Lua是一种轻量级、高效的脚本语言,具有动态类型、自动垃圾回收、支持一等函数和闭包等特点。其核心数据结构是table,既可用作数组,也可用作字典。Lua的基础语法包括变量声明、数据类型(如number、string、boolean、table、function)以及控制结构(如if-else、for、while、repeat-until)。Table在Lua中用途广泛,既可作为数组(下标从1开始),也可作为字典使用。Lua支持高阶函数和闭包,能够实现函数式编程。模块化通过require实现,便于代码组织。L

crd39的博客 580

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Lua自学:1

学习语言的第一步: Lua - Joe DF's Builds:配置环境 我是windows,下载下图版本 解压配置环境变量 cmd运行: 老规矩:hello world 新建一个one.lua文本: 我本身是按照lua程序设计第二版来学习的,而我工作所用的是java,然后根据写的第二个程序 1.没有 ; 结尾 2.if 没有()来包裹代码 3.退出lua ctrl+C 简单的...

EO_DaRen的博客 175

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

lua自学笔记1

1. print("test1"); 2.退出交互模式和解析器,需要输入 系统的退出函数  os.exit() 就不会继续执行下面的语句 3.lua有字母大小之分,包括如下保留字: if 、 then、  end、 elseif、do、and、break、local、while、for、not、nil、true、false、return、function、until、repeat、in、or

houjunli001的专栏 642

Lua 15分钟快速上手(上)

在之前的博客《Flutter 热更新及动态UI生成》一文中,通过编写LuaDardo虚拟机,大致介绍了在Dart语言之上开发Lua虚拟机给Flutter提供动态能力的方案,但Lua语言流行并不算广泛,许多人对小巧精湛的Lua语言缺少了解,认为将Lua替换为JavaScript语言更好。为此,我特别整理了两篇Lua语言的快速上手指南,相信充分学习了解后,会认同在特定需求场景下,小巧简洁的Lua将更具“胶水”优势。 基础语法篇 注释 单行注释 多行注释 -- 单行注释,使用两个减号 --[[ 多行注释

编程之路的专栏 2842

从零开始学 Lua:小白也能轻松掌握的入门指南

本文介绍了Lua脚本语言的基础入门知识,内容涵盖: 两种编程模式(交互式和脚本式) 基础语法(注释、标识符、保留词) 6种常用数据类型(nil、boolean、number等) 变量类型(全局/局部)和多变量赋值 3种循环结构(while/for/repeat) 常见错误避坑指南 实战案例(学生成绩统计程序) 学习路线建议 文章采用通俗易懂的语言,配合大量代码示例,适合零基础编程新手快速掌握Lua基础。

A Charmer 的博客 1987

自学Lua(2)--Lua表达式

自学Lua中,写点学习笔记,如果有不对的地方,请指出,共同学习,小生在此感谢了。

dl15600383645的博客 591

初学者必看:Lua入门学习教程

转载自http://mobile.51cto.com/iphone-286296.htm Lua入门学习教程是本文要介绍的内容,主要是来对Lua入门的一个学习,Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言。不幸的是,网上很少有关于这个语言的在线教程。我主要通过阅读其源代码来了解它是怎样工作并且通过一些发布的程序学习它。希望,通过下面的教程,会让学习Lua更加简单。 本教程

相信爱的力量,坚持自己的梦想。 2029
上一篇: iOS之俄罗斯方块
下一篇: lua笔记二
RootTimeYu
博客等级 码龄9年 4粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值