经典的串口调试工具源代码(二)
经典的串口调试工具源代码(二)
Private Sub cmdswitch_Click()
On Error GoTo Err
If MSComm.PortOpen = True Then
ComSwitch = True
Else
ComSwitch = False
End If
If ComSwitch = False Then
StatusBar1.Panels(1).Text = "Connected"
mnuconnect.Caption = "Dis&connect"
OpenCom ' 打开串口
ComSwitch = True
Else
CloseCom ' 关闭串口
ComSwitch = False
StatusBar1.Panels(1).Text = "Disconnected"
mnuconnect.Caption = "&Connect"
StatusBar1.Panels(2).Text = "COM" & https://www.360docs.net/doc/e914577636.html,mPort StatusBar1.Panels(3).Text = MSComm.Settings
If (OutputAscii) Then
StatusBar1.Panels(4) = "ASCII"
Else
StatusBar1.Panels(4) = "HEX"
End If
End If
Err:
End Sub
Private Sub Form_Load()
On Error GoTo Err
lblWEB.FontUnderline = True ' WEB上加下划线
lblWEB.ForeColor = vbBlue ' 蓝色显示WEB
txtsend.Text = "" ' 载入发送信息
If MSComm.PortOpen = True Then MSComm.PortOpen = False ' 先判断串口是否打
开,如果打开则先关闭
' 初始化串口Call Comm_initial(Val(Mid(cbocom.Text, 4, 1)), cbobaudrate.Text, Left(cboparitybit.Text, 1),
cbodatabit.Text, cbostopbit.Text)
' 数据位载入
cbodatabit.AddItem "8"
cbodatabit.AddItem "7"
cbodatabit.AddItem "6"
' 停止位载入
cbostopbit.AddItem "1"
cbostopbit.AddItem "1.5"
cbostopbit.AddItem "2"
Err:
End Sub
Private Sub hexReceive()
On Error GoTo Err
Dim ReceiveArr() As Byte ' 接收数据数组
Dim receiveData As String ' 数据暂存Dim Counter As Integer ' 接收数据个数计数器
Dim i As Integer ' 循环变量
If (MSComm.InBufferCount > 0) Then
Counter = MSComm.InBufferCount ' 读取接收数据个数
receiveData = "" ' 清缓冲
ReceiveArr = MSComm.Input ' 数据放入数组
For i = 0 To (Counter - 1) Step 1 ' 数据格式处理
If (ReceiveArr(i) < 16) Then
receiveData = receiveData & "0" + Hex(ReceiveArr(i)) & Space(1) ' 小于16,前面加0
Else
receiveData = receiveData & Hex(ReceiveArr(i)) & Space(1) ' 加空格显示
End If
Next i
TxtReceive.Text = TxtReceive.Text + receiveData ' 显示接收的十六进制数据TxtReceive.SelStart = Len(TxtReceive.Text) ' 显示光标位置
End If
ReceiveCount = ReceiveCount + Counter ' 接收计数txtRXcount.Text = "RX:" & ReceiveCount ' 接收字节数显示
If chkautoclear.Value = 1 Then ' 自动清空判断
If ReceiveCount >= 65535 Then
TxtReceive.Text = ""
End If
End If
Err:
End Sub
Private Sub hexSend()
On Error Resume Next
Dim outputLen As Integer ' 发送数据长度
Dim outData As String ' 发送数据暂存
Dim SendArr() As Byte ' 发送数组
Dim TemporarySave As String ' 数据暂存
Dim dataCount As Integer ' 数据个数计数
Dim i As Integer ' 局部变量
outData = UCase(Replace(txtsend.Text, Space(1), Space(0))) ' 先去掉空格,再转换为
大写字母
outData = UCase(outData) ' 转换成大写
outputLen = Len(outData) ' 数据长度
For i = 0 To outputLen
TemporarySave = Mid(outData, i + 1, 1) ' 取一位数据If (Asc(TemporarySave) >= 48 And Asc(TemporarySave) <= 57) Or (Asc(TemporarySave) >= 65
And Asc(TemporarySave) <= 70) Then
dataCount = dataCount + 1
Else
Exit For
Exit Sub
End If
Next
If dataCount Mod 2 <> 0 Then ' 判断十六进制数据是否为双数dataCount = dataCount - 1 ' 不是双数,则减1
End If
outData = Left(outData, dataCount) ' 取出有效的十六进制数据
ReDim SendArr(dataCount / 2 - 1) ' 重新定义数组长度
For i = 0 To dataCount / 2 - 1
SendArr(i) = Val("&H" + Mid(outData, i * 2 + 1, 2)) ' 取出数据转换成十六进制并放入
数组中
Next
SendCount = SendCount + (dataCount / 2) ' 计算总发送数
txtTXcount.Text = "TX:" & SendCount
MSComm.Output = SendArr ' 发送数据
End Sub
Private Sub OpenCom() '打开串口
On Error GoTo Err
If MSComm.PortOpen = True Then MSComm.PortOpen = False ' 先判断串口是否打
开,如果打开则先关闭
Call Comm_reSet(Val(Mid(cbocom.Text, 4, 1)), cbobaudrate.Text, Left(cboparitybit.Text, 1),
cbodatabit.Text, cbostopbit.Text) ' 串口设置
If MSComm.PortOpen = True Then
txtstatus.Text = "STATUS:" & cbocom.Text & " OPEND," & cbobaudrate.Text & "," & Left(cboparitybit.Text, 1) & "," & cbodatabit.Text & "," & cbostopbit.Text
cmdswitch.Caption = "关闭串口"
mnuconnect.Caption = "disconnect"
'ImgSwitch.Picture = LoadPicture("f:\我的VB\串口调试软件\图片\kai.jpg") ' 显示串口已经打开的
图标
ImgSwitchon.Visible = True
ImgSwitchoff.Visible = False
Else
txtstatus.Text = "STATUS:COM Port Cloced" ' 串口状态显示
cmdswitch.Caption = "打开串口"
mnuconnect.Caption = "connect"
'ImgSwitch.Picture = LoadPicture("f:\我的VB\串口调试软件\图片\guan.jpg") ' 显示串口已经关闭
的图标
ImgSwitchoff.Visible = True
ImgSwitchon.Visible = False
End If
Err:
End Sub
Private Sub textReceive()
On Error GoTo Err
InputSignal = MSComm.Input
ReceiveCount = ReceiveCount + LenB(StrConv(InputSignal, vbFromUnicode)) ' 计算总接收数据If DisplaySwitch = False Then ' 显示接收文本TxtReceive.Text = TxtReceive.Text & InputSignal ' 单片机内存的值用
TextReceive显示出
TxtReceive.SelStart = Len(TxtReceive.Text) ' 显示光标位置
End If
txtRXcount.Text = "RX:" & ReceiveCount ' 接收字节数显示
If chkautoclear.Value = 1 Then ' 自动清空判断
If ReceiveCount >= 65535 Then
TxtReceive.Text = ""
End If
End If
Err:
End Sub
Private Sub textSend()
On Error GoTo Err
If ModeSend = True Then
OutputSignal = FileData ' 发送文件
Else
OutputSignal = txtsend.Text ' 发送文本
End If
SendCount = SendCount + LenB(StrConv(OutputSignal, vbFromUnicode)) ' 计算总发送数txtTXcount.Text = "TX:" & SendCount ' 发送字节数显示
Err:
End Sub
Private Sub Image1_Click()
End Sub
Private Sub mnuautosend_Click()
On Error GoTo Err
'If TmrAutoSend.Enabled = True Then ' 如果有效则,自动发送If MSComm.PortOpen = True Then ' 串口状态判断
ChkAutoSend.Value = 1
TmrAutoSend.Interval = Val(TxtAutoSendTime) ' 设置自动发送时间
mnuautosend.Caption = "取消自动发送"
TmrAutoSend.Enabled = True ' 打开自动发送定时器
Else
mnuautosend.Caption = "自动发送"
ChkAutoSend.Value = 0 ' 串口没有打开去掉自动发送MsgBox "串口没有打开,请打开串口", 48, "串口调试助手" ' 如果串口没有被打开,提
示打开串口
End If
'ElseIf TmrAutoSend.Enabled = False Then ' 如果无效,不发送
' mnuautosend.Caption = "autosend"
' TmrAutoSend.Enabled = False ' 关闭自动发送定时器
'End If
Err:
End Sub
Private Sub mnucom_Click(Index As Integer)
Dim i As Integer
Dim OldPort As Long
On Error Resume Next
With MSComm
OldPort = .CommPort
If MSComm.PortOpen Then
.PortOpen = False
.CommPort = Index
.PortOpen = True
If Err.Number <> 0 Then ' This should not happen...
MsgBox "Com" & Index & " is not available." & _
vbCrLf & Err.Description
Err.Clear
.CommPort = OldPort
Else
For i = 1 To 4
mnucom(i).Checked = False
Next i
mnucom(Index).Checked = True
End If
Else
.CommPort = Index
For i = 1 To 4
mnucom(i).Checked = False
Next i
mnucom(Index).Checked = True
End If
End With
UpdateStatus
End Sub
Private Sub mnuconnect_Click()
On Error Resume Next
If MSComm.PortOpen = True Then
ComSwitch = True
Else
ComSwitch = False
End If
With MSComm
If .PortOpen = True Then
.PortOpen = False
txtstatus.Text = "STATUS:COM Port Cloced" ' 串口状态显示
cmdswitch.Caption = "打开串口"
'ImgSwitch.Picture = LoadPicture("f:\我的VB\串口调试软件\图片\guan.jpg") ' 显示串口已经关闭
的图标
ImgSwitchoff.Visible = True
ImgSwitchon.Visible = False
Else
.PortOpen = True
ComSwitch = True
txtstatus.Text = "STATUS:" & cbocom.Text & " OPEND," & cbobaudrate.Text & "," & Left(cboparitybit.Text, 1) & "," & cbodatabit.Text & "," & cbostopbit.Text
cmdswitch.Caption = "关闭串口"
'ImgSwitch.Picture = LoadPicture("f:\我的VB\串口调试软件\图片\kai.jpg") ' 显示串口已经打开的
图标
ImgSwitchon.Visible = True
ImgSwitchoff.Visible = False
If Err.Number <> 0 Then
MsgBox "Com" & .CommPort & " is not available." & vbCrLf & _
Err.Description
Err.Clear
End If
End If
End With
UpdateStatus
End Sub
Private Sub mnusave_Click()
On Error GoTo Err ' 错误处理
SaveTextPath = txtsavepath ' 路径暂存Open txtsavepath & "\1.txt" For Output As #1 ' 打开文件
' 不存在的话会创建文件,如已存在会覆盖
' output 改为append 为追加
' 改为input 则只读
Print #1, Year(Date) & "年" & Month(Date) & "月" & Day(Date) & _
"日" & Hour(Time) & "时" & Minute(Time) & "分" & Second(Time) & _
"秒" & vbCrLf & TxtReceive.Text + vbCrLf ' 把接收区的文本保存文本前加上保存时间(0000年00月00日00时00分00秒)
' vbcrlf 为回车换行
Close #1 ' 关闭文件
txtsavepath = "OK,1.txt Save" ' 提示保存成功
cmdsavedisp.Enabled = False
Savetime = Timer ' 记下开始的时间While Timer < Savetime + 5 ' 循环等待5 - 要延时的时间DoEvents ' 转让控制权,以便让操作系统处理其它的事
件。
Wend
txtsavepath = SaveTextPath ' 显示保存路径
cmdsavedisp.Enabled = True
Err:
End Sub
Private Sub MSComm_OnComm()
On Error GoTo Err
Select Case https://www.360docs.net/doc/e914577636.html,mEvent ' 每接收1个数就触发一次
Case comEvReceive
If ChkHexReceive.Value = 1 Then
Call hexReceive ' 十六进制接收
Else
Call textReceive ' 文本接收
End If
Case comEvSend ' 每发送1个数就触发一次
If ChkHexsend.Value = 1 Then
Else
Call textSend ' 文本发送
End If
Case Else
End Select
Err:
End Sub
Private Sub TmrAutoSend_Timer()
On Error GoTo Err
If txtsend.Text = "" Then ' 判断发送数据是否为空ChkAutoSend.Value = 0 ' 关闭自动发送MsgBox "发送数据不能为空", 16, "串口调试助手" ' 发送数据为空则提示
Else
If ChkHexsend.Value = 1 Then ' 发送方式判断
MSComm.InputMode = comInputModeBinary ' 二进制发送Call hexSend ' 发送十六进制数据
Else ' 按十六进制接收文本方式发送的数据时,文本也
要按二进制发送发送
If ChkHexReceive.Value = 1 Then
MSComm.InputMode = comInputModeBinary ' 二进制发送
Else
MSComm.InputMode = comInputModeText ' 文本发送
End If
MSComm.Output = Trim(txtsend.Text) ' 发送数据
ModeSend = False ' 设置文本发送方式
End If
End If
Err:
End Sub
Private Sub TxtReceive_Change()
End Sub
Dreamweaver8序列号
WPD800-59139-91432-25145 WPD800-57931-76932-54523 WPD800-59931-32632-81939 WPD800-55533-57232-82308 WPD800-51139-95632-31627 WPD800-52836-88632-87970 WPD800-50836-81932-91159 WPD800-53735-53632-48591 WPD800-52830-42932-95093 WPD800-50438-43132-60296 WPD800-50438-43132-60296 WPD800-52836-88632-87970 WPD800-50836-81932-91159 WPD800-53735-53632-48591 WPD800-52830-42932-95093 WPD800-50438-43132-60296 WPD800-50438-43132-60296 WPD800-52836-88632-87970 WPD800-50836-81932-91159 WPD800-52830-42932-95093 WPD800-50438-43132-60296 WPD800-50438-43132-60296 WPD800-52836-88632-87970 WPD800-50836-81932-91159 WPD800-52830-42932-95093 WPD800-50438-43132-60296 WPD800-50438-43132-60296 WPD800-52836-88632-87970 WPD800-50836-81932-91159 WPD800-52830-42932-95093 WPD800-50438-43132-60296 WPD800-50438-43132-60296 WPD800-52836-88632-87970 WPD800-50836-81932-91159 WPD800-52830-42932-95093 WPD800-50438-43132-60296 WPD800-50438-43132-60296 WPD800-52836-88632-87970 WPD800-50836-81932-91159 WPD800-52830-42932-95093 WPD800-50438-43132-60296 WPD800-50438-43132-60296 本文转自天迹社区,原文地址:https://www.360docs.net/doc/e914577636.html,/tianji114781.html
matlab代码大全
MATLAB主要命令汇总 MATLAB函数参考 附录1.1 管理用命令 函数名功能描述函数名功能描述 addpath 增加一条搜索路径 rmpath 删除一条搜索路径 demo 运行Matlab演示程序 type 列出.M文件 doc 装入超文本文档 version 显示Matlab的版本号 help 启动联机帮助 what 列出当前目录下的有关文件 lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性 lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录 path 设置或查询Matlab路径 附录1.2管理变量与工作空间用命令 函数名功能描述函数名功能描述 clear 删除存中的变量与函数 pack 整理工作空间存 disp 显示矩阵与文本 save 将工作空间中的变量存盘 length 查询向量的维数 size 查询矩阵的维数 load 从文件中装入数据 who,whos 列出工作空间中的变量名 附录1.3文件与操作系统处理命令 函数名功能描述函数名功能描述 cd 改变当前工作目录 edit 编辑.M文件 delete 删除文件 matlabroot 获得Matlab的安装根目录 diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录 dir 列出当前目录的容 tempname 获得一个缓存(temp)文件 ! 执行操作系统命令 附录1.4窗口控制命令 函数名功能描述函数名功能描述 echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面format 设置输出格式 附录1.5启动与退出命令 函数名功能描述函数名功能描述 matlabrc 启动主程序 quit 退出Matlab环境 startup Matlab自启动程序 附录2 运算符号与特殊字符附录 2.1运算符号与特殊字符 函数名功能描述函数名功能描述 + 加 ... 续行标志 - 减 , 分行符(该行结果不显示) * 矩阵乘 ; 分行符(该行结果显示) .* 向量乘 % 注释标志 ^ 矩阵乘方 ! 操作系统命令提示符 .^ 向量乘方矩阵转置 kron 矩阵kron积 . 向量转置 \ 矩阵左除 = 赋值运算 / 矩阵右除 == 关系运算之相等 .\ 向量左除 ~= 关系运算之不等 ./ 向量右除 < 关系运算之小于
matlab相关图形实现代码
根据数据点绘制饼图和针状图: x=[1 2 3 4 5 6]; >> subplot(2,2,1);pie(x); >> subplot(2,2,2);pie3(x); >> subplot(2,2,3);stem(x); >>subplot(2,2,4);stem3(x); 5% 10% 14% 19% 24% 29% 24% 29% 19% 5%14% 10%0 2 4 6 2 4 6 5 10 01 2 05 10
根据数据点绘制向量场图、羽状图和罗盘图: x=[1 2 3 4 5 6];y=[1 2 3 4 5 6]; u=[1 2 3 4 5 6];v=[1 2 3 4 5 6]; subplot(2,2,1);quiver(x,y,u,v); subplot(2,2,2);quiver(x,y,u,v,'r'); subplot(2,2,3);feather(u,v); subplot(2,2,4);compass(u,v); 024680 246 802468 246 80 5 10 15 2 4 6 5 10 30 210 60240 90270 120 300 150330 180
rand(m,n)产生m ×n 均匀分布的随机矩阵,元素取值在0.0~1.0。 randn 函数:产生标准正态分布的随机数或矩阵的函数。 Y = randn(m,n) 或 Y = randn([m n])返回一个m*n 的随机项矩阵。 > theta=10*rand(1,50); %确定50个随机数theta >> Z=peaks; %确定Z 为峰值函数peaks >> x=0:0.01:2*pi;y=sin(x); %确定正弦函数数据点x.y >> t=randn(1000,1); %确定1000个随机数t >> subplot(2,2,1);rose(theta); %关于(theta )的玫瑰花图 >> subplot(2,2,2);area(x,y); %关于(x,y)的面积图 >> subplot(2,2,3);contour(Z); %关于Z 的等值线图(未填充) >> subplot(2,2,4);hist(t); %关于t 的柱状图 5 10 30 210 60 240 90270 120300150330 18000246 -1 -0.500.5 110 20 30 40 10 2030 40-4 -2 2 4 100 200 300
DreamWeaver操作技巧大全
DreamWeaver操作技巧大全 1. 用Dreamweaver 4.0轻松设计会自动弹性调整的网页 首先需要保证的是你的页面内容采用了表格的格式,然后打开你要编辑的页面,按“Ctrl+F6”或者菜单“View→TableView→Layout?View”转换到布局视图。这时可以看到单元格的列宽,在列宽数字的旁边还有一个小小的下拉式箭头,点击你要设定弹性显示的列上方的小箭头,接着选择“将列设为弹性显示”(Make Column Autostretch)。该列方框上方就会出现一条波浪形的线,而不是刚才表示列宽的数字。完成后你的页面就变成了一个具有弹性的页面了。此外,需要注意页面中不要有尺寸过大的图片。 2. 用Dreamweaver 4.0制作有闪动效果的Flash按钮 选择菜单Insert→Interactive?Images→Flash?Button就可看到有哪些内嵌按钮。在弹出的对话框里,你可以在“Style”列表里选择自己想要的按钮样式,在预览(Sample)窗口里可以看到这种样式的效果如何。选择好之后,在“Button?Text”窗口输入按钮上面的文字,在“Font”窗口选择字体,在“Size”窗口输入文字的大小,在“Link”窗口输入链接的目标,在“Target”窗口选择链接打开的方式,在“BgColor”选择按钮背景颜色,在“Save?As”窗口输入保存的文件名。完成这些后,按下“OK”按钮,你就完成了一个Flash按钮啦。这个按钮还会自动插入你的网页中,然后在Dreamweaver编辑窗口选中你刚才制作的按钮,属性窗口就会显示出这个按钮的属性,单击上面的“Play”按钮,你就可直接在编辑窗口预览这个按钮的闪动效果。需要注意的是Dreamweaver?4.0的这个功能不支持中文字体。 3. 在Dreamweaver 4.0中自定义键盘快捷键 选择菜单“Edit→Keyboard?Shortcuts”,在对话框中会列出目前已经启用的以及可以更改的快捷键一览表,你可以在这里把快捷键改成自己习惯用的。如果要更改快捷键,首先要选取你要更改的命令,接着选取目前的快捷键,这个快捷键就会出现在“Shortcuts”列表中,然后在“Press Key”窗口输入你想要使用的快捷键,然后点击“Change”按钮更改即可完毕。你还可以利用“+”、“-”按钮增加或者删除当前的快捷键。 4. 让Dreamweaver?4.0和Fireworks整合 如果你的电脑里同时安装了Dreamweaver/Fireworks,那么你就可以使用Dreamweaver?4.0提供的整合Fireworks的功能。利用这个功能你可以把你的GIF图片修改得更加动人,轻松地实现动画效果。在Dreamweaver编辑窗口选择好你要修改的GIF图片,然后在图片属性窗口单击“编辑(Edit)”按钮,这时系统会自动启动Fireworks软件编辑这个图片。仔细看,你会发现Fireworks的图片编辑窗口已出现Editing?From?Dreamweaver这样的文字和图样,也就是说这个图片是为Dreamweaver页面进行图片编辑的。现在我们在Fireworks里选择要编辑的图片,选择菜单“Modify→Animate→Animate?Selection”。在弹出的窗口里设置动画的属性:选定动画的帧数、动画移动的方向、透明度等等。然后把修改好的文件导出即可。这样,在Dreamweaver编辑窗口会自动更新刚才修改好的文件,使你的页面图片动起来。 5. 巧用网站报告器
matlab代码大全教学文案
m a t l a b代码大全
MATLAB主要命令汇总 MATLAB函数参考 附录1.1 管理用命令 函数名功能描述函数名功能描述 addpath 增加一条搜索路径 rmpath 删除一条搜索路径 demo 运行Matlab演示程序 type 列出.M文件 doc 装入超文本文档 version 显示Matlab的版本号 help 启动联机帮助 what 列出当前目录下的有关文件 lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性 lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录 path 设置或查询Matlab路径 附录1.2管理变量与工作空间用命令 函数名功能描述函数名功能描述 clear 删除内存中的变量与函数 pack 整理工作空间内存 disp 显示矩阵与文本 save 将工作空间中的变量存盘 length 查询向量的维数 size 查询矩阵的维数 load 从文件中装入数据 who,whos 列出工作空间中的变量名 附录1.3文件与操作系统处理命令 函数名功能描述函数名功能描述 cd 改变当前工作目录 edit 编辑.M文件 delete 删除文件 matlabroot 获得Matlab的安装根目录 diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录 dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件 ! 执行操作系统命令 附录1.4窗口控制命令 函数名功能描述函数名功能描述 echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面format 设置输出格式 附录1.5启动与退出命令 函数名功能描述函数名功能描述 matlabrc 启动主程序 quit 退出Matlab环境 startup Matlab自启动程序 附录2 运算符号与特殊字符附录
遗传算法经典MATLAB代码
遗传算法实例: 也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。 对于初学者,尤其是还没有编程经验的非常有用的一个文件 遗传算法实例 % 下面举例说明遗传算法% % 求下列函数的最大值% % f(x)=10*sin(5x)+7*cos(4x) x∈[0,10]% % 将x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为(10-0)/(2^10-1)≈。% % 将变量域[0,10] 离散化为二值域[0,1023], x=0+10*b/1023, 其 中 b 是[0,1023] 中的一个二值数。% % % %--------------------------------------------------------------------------------------------------------------% %--------------------------------------------------------------------------------------------------------------% % 编程
%----------------------------------------------- % 初始化(编码) % 函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength 表示染色体的长度(二值数的长度), % 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 %遗传算法子程序 %Name: %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元 为{0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 % 计算目标函数值 % 将二进制数转化为十进制数(1) %遗传算法子程序 %Name: %产生[2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制
matlab的编码大全
附录Matlab源程序 附录A 信息熵 % 函数说明:% % H=entropy(P,r) 为信息熵函数% % P为信源的概率矢量, r为进制数% % H为信息熵% %****************************** % function H=entropy(P,r) if (length(find(P<=0))~=0) error('Not a prob.vector,negative component'); % 判断是否符合概率分布条件end if (abs(sum(P)-1)>10e-10) error('Not a prob.vector,component do not add up to 1'); end H=(sum(-P.*log2(P)))/(log2(r)+eps); 附录B 离散无记忆信道容量的迭代计算 % 信道容量C的迭代算法% % 函数说明:% % [CC,Paa]=ChannelCap(P,k) 为信道容量函数% % 变量说明:% % P:输入的正向转移概率矩阵,k:迭代计算精度% % CC:最佳信道容量,Paa:最佳输入概率矩阵% % Pa:初始输入概率矩阵,Pba:正向转移概率矩阵% % Pb:输出概率矩阵,Pab:反向转移概率矩阵% % C:初始信道容量,r:输入符号数,s:输出符号数% %************************************************** % function [CC,Paa]=ChannelCap(P,k) % 提示错误信息 if (length(find(P<0)) ~=0) error('Not a prob.vector,negative component'); % 判断是否符合概率分布条件end
遗传算法经典MATLAB代码资料讲解
遗传算法经典学习Matlab代码 遗传算法实例: 也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的。 对于初学者,尤其是还没有编程经验的非常有用的一个文件 遗传算法实例 % 下面举例说明遗传算法% % 求下列函数的最大值% % f(x)=10*sin(5x)+7*cos(4x) x∈[0,10]% % 将x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为(10-0)/(2^10-1)≈0.01。% % 将变量域[0,10] 离散化为二值域[0,1023], x=0+10*b/1023, 其 中 b 是[0,1023] 中的一个二值数。% % % %--------------------------------------------------------------------------------------------------------------% %--------------------------------------------------------------------------------------------------------------% % 编程 %----------------------------------------------- % 2.1初始化(编码) % initpop.m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度),
% 长度大小取决于变量的二进制编码的长度(在本例中取10位)。 %遗传算法子程序 %Name: initpop.m %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元 为{0,1} 行数为popsize,列数为chromlength的矩阵, % roud对矩阵的每个单元进行圆整。这样产生的初始种群。 % 2.2 计算目标函数值 % 2.2.1 将二进制数转化为十进制数(1) %遗传算法子程序 %Name: decodebinary.m %产生[2^n 2^(n-1) ... 1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(pop) [px,py]=size(pop); %求pop行和列数 for i=1:py pop1(:,i)=2.^(py-i).*pop(:,i); end pop2=sum(pop1,2); %求pop1的每行之和 % 2.2.2 将二进制编码转化为十进制数(2) % decodechrom.m函数的功能是将染色体(或二进制编码)转换为十进制,参数spoint表示待解码的二进制串的起始位置
HTML各种命令的代码
HTML各种命令的代码 跑马灯 普通卷动 滑动 预设卷动 来回卷动向下卷动 向上卷动 向右卷动 向左卷动 卷动次数 设定宽度 设定高度 设定背景颜色设定卷动距离设定卷动时间 字体效果
...
标题字(最大)...
标题字(最小) ...粗体字 ...粗体字(强调) ...斜体字 ...斜体字(强调) ...斜体字(表示定义) ...底线 ...底线(表示插入文字)matlab 指令大全
分享 我的分享 当前分享 返回分享首页? 分享 matlab命令,应该很全了!来源:李家叶的日志 matlab命令 一、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。!dir& 可以在dos状态下查看。 2、who 可以查看当前工作空间变量名,whos 可以查看变量名细节。 3、功能键: 功能键快捷键说明 方向上键Ctrl+P 返回前一行输入 方向下键Ctrl+N 返回下一行输入 方向左键Ctrl+B 光标向后移一个字符 方向右键Ctrl+F 光标向前移一个字符 Ctrl+方向右键Ctrl+R 光标向右移一个字符 Ctrl+方向左键Ctrl+L 光标向左移一个字符 home Ctrl+A 光标移到行首 End Ctrl+E 光标移到行尾 Esc Ctrl+U 清除一行 Del Ctrl+D 清除光标所在的字符 Backspace Ctrl+H 删除光标前一个字符 Ctrl+K 删除到行尾 Ctrl+C 中断正在执行的命令 4、clc可以命令窗口显示的内容,但并不清除工作空间。 二、函数及运算 1、运算符: +:加,-:减,*:乘,/:除,\:左除^:幂,‘:复数的共轭转置,():制定运算顺序。 2、常用函数表: sin( ) 正弦(变量为弧度) Cot( ) 余切(变量为弧度) sind( ) 正弦(变量为度数) Cotd( ) 余切(变量为度数) asin( ) 反正弦(返回弧度) acot( ) 反余切(返回弧度) Asind( ) 反正弦(返回度数) acotd( ) 反余切(返回度数) cos( ) 余弦(变量为弧度) exp( ) 指数 cosd( ) 余弦(变量为度数)
matlab信道仿真经典源程序
% % % Rayleigh Fading Channel Signal Generator % Using the Dent Model (a modification to the Jakes Model) % % Last Modified 10/18/05 % % Author: Avetis Ioannisyan (avetis@https://www.360docs.net/doc/e914577636.html,) % % % Usage: % [omega_mTau, Tk] = % ai_RayCh(NumAngles, Length, SymbolRate, NumWaveforms, CarrierFreq, Velocity) % % Where the output omega_mTau is a time scaling factor for plotting % normalized correlations. The LAGS value output by [C,LAGS] = XCORR(...) % should be multiplied by the omega_mTau scaling factor to properly display % axis. Tk is a two dimensional vector [M, N] = SIZE(Tk) with % M=numWaverorms and N=Length specified in the RayCh(...) function call % % And the input variables are: % % NumAngles - scalar power of 2, NumAngles > 2^7 is used to specify the % number of equally strong rays arriving at the receiver. It used to % compute the number of oscillators in the Dent model with N0 = numAngles/4 % % Length - scalar preferably power of 2 for faster computation, Length > 2^17 % is used to specify the length of the generated sequence. Lengths near 1E6 % are close to realistic signals % % SymbolRate - scalar power of 2 and is in kilo-symbols-per-sec is used to % specify what should be the transmission data rate. Slower rates will % provide slowly fading channels. Normal voice and soem data rates are % 64-256 ksps % % NumWaveforms - scalar used to specify how many 'k' waveforms to generate % in the model. NumWaveforms > 2 to properly display plots % % CarrierFreq - scalar expressed in MHz is the carrier frequency of the % tranmitter. Normally 800 or 1900 MHz for mobile comms % % Velocity - scalar expressed in km/hr is the speed of the receiver. % 100 km/hr = 65 mi/hr. Normal values are 20-130 km/hr %
Dreamweaver代码大全
Dreamweaver代码大全 2010-11-10 17:09 html文档示例: <html> <head> <title>标题<title> </head> <body>……….文件内容………. </body> </html> html标签范例: <头标签>内容<尾标签> 1.文件标题 <title>……….</title> 2.文件更新–<meta> 【1】10秒后自动更新一次 <meta http-equiv=”refresh”content=10> 【2】10秒后自动连结到另一文件 <meta http-equiv=”refresh”content=10> 3.查询用表单 –<isindex> 若欲设定查询栏位前的提示文字: <isindex prompt=”提示文字”> 4.预设的基准路径–<base> <base href=”放置文件的主机之URL”> 版面 1.标题文字<h#>……….</h#>#=1~6;h1为最大字,h6为最小字 2.字体变化<font>……….</font> 【1】字体大小<font size=#>……….</font>#=1~7;数字愈大字也愈大 【2】指定字型<font face=”字型名称”>……….</font> 【3】文字颜色<font color=#rrggbb>……….</font>rr:表红色(red)色码gg:表绿色(gree 3.显示小字体<small>……….</small> 4.显示大字体<big>……….</big> 5.粗体字<b>……….</b> 6.斜体字<i>……….</i> 7.打字机字体<tt>……….</tt> 8.底线<u>……….</u> 9.删除线<strike>……….</strike> 10.下标字<sub>……….</sub> 11.上标字<sup>……….</sup>
实验一 典型环节的MATLAB仿真汇总
实验一 典型环节的MATLAB 仿真 一、实验目的 1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。 2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。 3.定性了解各参数变化对典型环节动态特性的影响。 二、SIMULINK 的使用 MATLAB 中SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包。利用SIMULINK 功能模块可以快速的建立控制系统的模型,进行仿真和调试。 1.运行MATLAB 软件,在命令窗口栏“>>”提示符下键入simulink 命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK 仿真 环境下。 2.选择File 菜单下New 下的Model 命令,新建一个simulink 仿真环境常规模板。 3.在simulink 仿真环境下,创建所需要的系统 三、实验内容 按下列各典型环节的传递函数,建立相应的SIMULINK 仿真模型,观察并记录其单位阶跃响应波形。 ① 比例环节1)(1=s G 和2)(1=s G 实验处理:1)(1=s G SIMULINK 仿真模型
波形图为: 实验处理:2)(1=s G SIMULINK 仿真模型 波形图为: 实验结果分析:增加比例函数环节以后,系统的输出型号将输入信号成倍数放大. ② 惯性环节11)(1+= s s G 和15.01)(2+=s s G 实验处理:1 1 )(1+=s s G SIMULINK 仿真模型
波形图为: 实验处理:1 5.01 )(2+= s s G SIMULINK 仿真模型 波形图为: 实验结果分析:当1 1 )(1+= s s G 时,系统达到稳定需要时间接近5s,当
DW标签代码
DW标签代码大全 一、、
、: 定义和用法:构成Html文档的重要组成部分,缺一不可。 1、 标签:此元素可告知浏览器其自身是一个HTML 文档。 与 标签限定了文档的开始点和结束点。 2、标签:定义文档的主体。它包含文档的所有内容(比如文本、图像、颜色和图形等等。) 3、 标签:用于定义文档的头部。下面这些标签可用在head 部分:, , 4、