ruby初级语法知识

''与""的区别:''处理的少,""处理的多,""可以加入#{expression},如果expression是一个实例变量类变量或者是全局变量,{}可省略。
全局变量$开头,实例变量@开头,类变量@@开头
类名,模块名,常量以大写字母开头,用驼峰表示法写如class KaraokeSong
@之后不能跟数字
实例变量用_把单词隔开
方法名可以以?!=字符结束
数组和散列表
数组中a=%{ant bee cat dog elk}访问a[0],a[1]...
用%可以省略''和逗号
散列表中a={'key1'=>'value1','key2'=>'value2','key3'=>'value3'}
key必须唯一,访问方法:a['key1']->value1
控制结构:
if ; while
if expression
       action
end
while expression
      action
end
-----------<=>
action if expression
action while expression
正则表达式/.../:
/a+b/--------1个或多个a后是b(并不是以b结尾)
/a*b/-----------0个或多个a后是b(并不是以b结尾)
\s匹配空白符(如空格符,制表符,回车等等)#space
\d匹配任何数字            #digital
\w匹配会出现在一个词内的任何字符       #word
. 匹配几乎任意字符
使用regexp: =~来得出是否匹配
例:if line=~/.../
...
sub 和 gsub(substitution)替换命令,用法:
line.sub(/perl/,'ruby')用ruby替换第一个'perl'
line.gsub(/perl/,'ruby')用ruby替换所有的'perl'
#Block和迭代器
单行block用{},多行用do..end
用法:
def call_block
  puts "start of method"
  yield
  yield
  puts "End of method"
end

call_blcok {puts "in the block"}
输出:start of method
in the block
in the block
End of method
yield还可以调用参数传递给block,
def call_block
yield("hello",99)
end

call_block {|str, num| action use the arguments}

block实现迭代器(iterator)
数组.each {|arg| ...}
5.times {action}
3.upto(6) {action}

【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值