算法设计与实践(基于MWORKS)课件 第二章 Julia基本语法_第1页
算法设计与实践(基于MWORKS)课件 第二章 Julia基本语法_第2页
算法设计与实践(基于MWORKS)课件 第二章 Julia基本语法_第3页
算法设计与实践(基于MWORKS)课件 第二章 Julia基本语法_第4页
算法设计与实践(基于MWORKS)课件 第二章 Julia基本语法_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章

Julia基本语法2.1基本数据类型2.2复合数据类型2.3数学运算与初等函数2.4流程控制CONTENTS目录2.5数据可视化2.1基本数据类型2.1.1整数类型1.有符号整数类型Int8(-128~127,1字节)、Int16(-32768~32767,2字节)、Int32(-2147483648~2147483647,4字节)、Int64(-9223372036854775808~9223372036854775807,8字节),适用于不同范围的整数存储需求。2.1基本数据类型2.1.1整数类型2.无符号整数类型UInt8(0~255,1字节)、UInt16(0~65535,2字节)、UInt32(0~4294967295,4字节)、UInt64(0~18446744073709551615,8字节),常用于非负整数场景如颜色分量、计数器等。2.1基本数据类型2.1.1整数类型3.平台相关整数类型Int和UInt的大小与系统架构相关,32位系统对应Int32/UInt32,64位系统对应Int64/UInt64,便于编写跨平台代码,是整数运算的默认类型。2.1基本数据类型2.1.1整数类型4.整数类型转换使用Int(x)、Int8(x)等函数进行类型转换,如num2=UInt8(Int32(100))。注意转换值超出目标类型范围会导致截断或溢出,例如Int32(300)转UInt8结果为44(300%256)。2.1基本数据类型2.1.1整数类型5.整数运算支持加法(+)、减法(-)、乘法(*)、除法(/,结果为浮点数)、整除(÷,取商整数部分)、取余(%),例如5÷3结果为1,5%3结果为2。2.1基本数据类型2.1.1整数类型6.BigInt类型的使用用于处理超出常规整数范围的任意精度整数,需通过usingBigInts加载,如big_num=big"12345678901234567890",运算速度较固定大小整数慢,适合高精度场景。2.1基本数据类型2.1.2浮点数类型1.标准浮点数类型特点Float16(半精度,2字节,±6.10×10⁻⁵~±6.55×10⁴,3-4位有效数字);Float32(单精度,4字节,±5.0×10⁻³²⁴~±1.8×10³⁰⁸,约7位有效数字);Float64(双精度,8字节,默认类型,约15-16位有效数字)。2.1基本数据类型2.1.2浮点数类型2.特殊值与类型转换特殊值:Inf(正无穷),-Inf(负无穷),如1.0/0.0=Inf。类型转换:可以在不同的浮点数类型之间以及浮点数和其他数值类型(如整数)之间进行转换。如float32_num=Float32(42)2.1基本数据类型2.1.2浮点数类型3.BigFloat高精度计算可通过setprecision设置精度(如setprecision(128)),适用于高精度科学或金融计算,运算速度较标准浮点数慢,BigFloat("3.141592653589793...")2.1基本数据类型2.1.3布尔值类型1.布尔运算Bool类型取值为true或false,逻辑运算包括与(&&,均为true则true)、或(||,至少一个true则true)、非(!,取反),例如true&&false结果为false,!true结果为false。2.1基本数据类型2.1.2浮点数类型2.布尔值在条件语句中的应用布尔值常用于条件语句,如if、while等,以决定程序的执行路径。例如:iftrueprintln("Thiswillalwaysbeexecuted.")end2.1基本数据类型2.1.2浮点数类型3.比较操作的结果为布尔值比较操作(如==,<,>,<=,>=,!=)通常会产生布尔值结果。例如:a=5==5b=3<22.1基本数据类型2.1.4字符类型1.字符表示与Unicode支持Char类型通过单引号表示字面值,如'a',全面支持Unicode字符,可表示世界各书写系统字符,例如'π'(希腊字母)、'中'(汉字)等。2.1基本数据类型2.1.4字符类型2.数值表示与比较每个字符对应Unicode码点,通过Int(c)获取,如Int('A')=65;通过Char(code_point)转回字符,如Char(65)='A'。比较基于码点值,如'a'<'b'(码点97<98)。2.1基本数据类型2.1.4字符类型3.字符连接与数组字符需通过string函数或字符串插值连接为字符串,如string('H','i')="Hi","$'H'$'i'"="Hi"。字符数组如['a','b','c'],可用于文本处理中的字符级操作。2.2复合数据类型2.2.1数组1.数组创建使用方括号[]定义数组,元素间用逗号分隔,如nums=[1,2,3,4];通过zeros(Int,5)创建全0整数数组,ones(Float64,3)创建全1浮点数数组,fill(10,4)创建全10数组。2.2复合数据类型2.2.1数组2.多维数组定义通过方括号内分号分隔不同维度元素定义,如matrix=[123;456;789]创建3x3二维数组。2.2复合数据类型2.2.1数组3.元素访问与修改使用索引访问(索引从1开始),如nums[2]获取数组nums的第二个元素;通过nums[3]=30修改第三个元素的值。2.2复合数据类型2.2.1数组4.常用数组操作push!函数在数组末尾添加元素,如push!(nums,4)使nums变为[1,2,3,4];pop!函数删除并返回数组末尾元素,如popped=pop!(nums),nums变为[1,2,3]。2.2复合数据类型2.2.2元组1.元组创建使用圆括号()定义,元素间用逗号分隔,如t1=(1,"hello",3.14);单个元素的元组需在元素后加逗号,如t2=(true,)。2.2复合数据类型2.2.1数组2.元素访问通过索引访问,索引从1开始,如t=(10,20,30),t[2]输出20。2.2复合数据类型2.2.1数组3.解包可将元组元素解包到多个变量,如t=(1,"abc",2.5),a,b,c=t,a为1、b为"abc"、c为2.5。2.2复合数据类型2.2.3结构体1.结构体定义使用struct关键字定义不可变结构体,如structPointx::Float64;y::Float64end;用mutablestruct定义可变结构体,如mutablestructMutablePointx::Float64;y::Float64end。2.2复合数据类型2.2.3结构体2.字段访问通过点号.访问结构体字段,如p=Point(1.0,2.0),p.x输出1.0。2.2复合数据类型2.2.3结构体3.可变性默认结构体不可变,可变结构体字段可修改,如mp=MutablePoint(1.0,2.0),mp.x=10.0可修改x值。2.2复合数据类型2.2.3结构体4.构造函数可自定义构造函数实现灵活初始化,如structCirclecenter::Point;radius::Float64;functionCircle(x,y,r)new(Point(x,y),r)endend,c=Circle(0.0,0.0,5.0)创建实例。2.2复合数据类型2.2.4字典1.字典创建使用Dict函数创建,如dict1=Dict("apple"=>1,"banana"=>2);或Dict{String,Int}()创建指定键值类型的空字典。2.2复合数据类型2.2.4字典2.键值对插入与访问通过键插入值,如dict["c"]=30;通过键访问值,如dict["b"]输出20。2.2复合数据类型2.2.4字典3.键的唯一性字典键唯一,插入相同键的新值会覆盖原值,如dict=Dict("a"=>10),dict["a"]=20后,dict["a"]输出20。2.2复合数据类型2.2.4字典4.遍历方法使用for循环遍历键值对,如for(key,value)indictprintln("$key:$value")end;也可通过keys、values函数分别遍历键、值。2.3数学运算与初等函数2.3.1基本数学运算1.算术运算包含加法(+)、减法(-)、乘法(*)、除法(/,结果为浮点数)、整除(÷,返回商的整数部分)、取余(%,计算除法余数)、幂运算(^,计算指数幂)。示例:5+3.5=8.5,5÷2=2,5%2=1,2^3=8。2.3数学运算与初等函数2.3.1基本数学运算2.位运算包含按位与(&)、按位或(|)、按位异或(⊻或xor)、按位取反(~)、左移(<<)、右移(>>)2.3数学运算与初等函数2.3.2比较运算基本比较运算符等于(==)不等于(!=)大于(>)小于(<)大于等于(>=)小于等于(<=)2.3数学运算与初等函数2.3.3基础函数绝对值与平方根函数abs(x)计算绝对值,如abs(-5)=5;sqrt(x)计算平方根,如sqrt(25)=5.0。2.3数学运算与初等函数2.3.3基础函数取整函数round(x)四舍五入,如round(3.5)=4;floor(x)向下取整,如floor(3.9)=3;ceil(x)向上取整,如ceil(3.1)=4。2.3数学运算与初等函数2.3.3基础函数三角函数与反三角函数三角函数:sin(π/2)=1.0,cos(π)=-1.0,tan(π/4)=1.0;反三角函数:asin(1)=π/2,acos(0)=π/2,atan(1)=π/4(结果为弧度)。2.3数学运算与初等函数2.3.3基础函数指数、对数与双曲函数指数函数exp(1)=2.71828;对数函数log(exp(1))=1.0,log10(100)=2.0;双曲函数sinh(1)=1.1752,cosh(1)=1.5431,tanh(1)=0.7616。2.4流程控制2.4.1条件语句if语句基础结构if语句根据条件执行代码块,条件表达式结果需为布尔值。可搭配else处理条件不满足情况,elseif添加多条件分支。2.4流程控制2.4.1条件语句三元运算符(?:)语法:condition?value_if_true:value_if_false,用于简单条件赋值。例:x=10时,y=x>5?"greaterthan5":"lessthanorequalto5"。2.4流程控制2.4.1条件语句if-else块作为表达式if-else块可作为表达式返回最后一个表达式的值。例:x=10时,result=ifx>5"greaterthan5"else"lessthanorequalto5"end。2.4流程控制2.4.2循环语句while循环及控制while循环在条件为真时重复执行代码块,break可提前终止循环,continue跳过当前迭代剩余部分。例:i=1,whilei<=5打印i并i+=1。。2.4流程控制2.4.2循环语句for循环遍历类型for循环遍历范围、数组、元组、集合等迭代器,支持多重迭代。例:foriin1:3,jin1:2打印"i=$i,j=$j"。2.4流程控制2.4.2循环语句嵌套循环与迭代器循环可嵌套实现复杂逻辑,enumerate获取元素及索引,字典可用keys、values、pairs函数迭代。例:for(index,element)inenumerate(arr)打印索引和元素。。2.4流程控制2.4.3异常处理try-catch捕获异常try块包含可能抛出异常的代码,catch块处理异常,避免程序终止。例:try1/0catchex打印"Anerroroccurred:"。2.4流程控制2.4.3异常处理多catch块处理不同异常可使用多个catch块针对不同类型异常处理。例:tryparse(Int,"abc")catchex::ArgumentError打印"Invalidargument:".2.4流程控制2.4.3异常处理finally子句finally子句中的代码无论是否发生异常都会执行。例:try1/0catchex打印错误信息finally打印"Thiswillalwaysexecute."。2.4流程控制2.4.4do块do块将函数作为参数传递给另一个函数并执行代码。例:定义myFunction(f)调用f(),通过myFunction()do...end传递函数。示例代码:functionmyFunction(f)f()end;myFunction()doprintln("Thisisexecutedinsidethedoblock.")end,执行后打印对应文本。2.5数据可视化2.5.1MWORKS平台数据可视化工具库TyPlot是同元软控MWORKS平台中用于数据可视化的重要工具库,为用户提供了丰富且强大的绘图功能。TyPlot的功能特点:多类型绘图支持高度可定制性交互式绘图与MWORKS生态集成2.5数据可视化2.5.2二维绘图1.二维折线图(plot函数)基础语法:plot(x,y)创建y对x的二维线图;plot(x,y,fmt)可设置线型(如"-"实线、"--"虚线)、标记符号(如"o"圆形、"s"方形)和颜色(如"#00FF00"绿色)。示例:x=1:10,y=x.^2,plot(x,y)绘制平方曲线。2.5数据可视化2.5.2二维绘图1.直方图(histogram函数)语法:histogram(X)基于数据X创建直方图,自动划分bin;histogram(X,nbins)指定bin数量;histogram(X,edges)自定义bin边界。示例:生成10000个随机数,用histogram(x_10000)展示数据分布。2.5数据可视化2.5.2二维绘图3.散点图(scatter函数)语法:scatter(x,y)创建圆形散点图;scatter(x,y,s)指定点大小(标量或向量);scatter(x,y,s,c)设置点颜色(颜色名称或RGB值)。示例:x=rand(10),y=rand(10),scatter(x,y)绘制随机散点分布。2.5数据可视化2.5.3三维绘图1.三维曲面图(surf函数)语法:surf(x,y,z)将矩阵z的值绘制为x-y平面网格上方的高度,颜色随z值变化。示例:生成x=-5:0.25:5、y=-5:0.25:5的网格,计算R=sqrt.(X.^2+Y.^2)、Z=sin.(R),surf(X,Y,Z)绘制正弦曲面。2.5数据可视化2.5.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论