matlab一维条形码码字识别程序讲解学习

合集下载

MATLAB入门指南

MATLAB入门指南

MATLAB入门指南MATLAB是一款功能强大的数值计算软件和编程环境,广泛应用于科学、工程和数据分析领域。

本文将为初学者提供一份MATLAB入门指南,以帮助他们快速掌握基本概念、使用技巧和常见功能。

第一部分:MATLAB基础1. MATLAB的介绍MATLAB是由MathWorks开发的高级编程语言和环境,其主要用于数值计算、数据可视化和算法开发。

它与其他编程语言相比,有着简单易学的语法和丰富的内置函数库。

2. MATLAB的安装与设置在使用MATLAB之前,您需要先下载和安装MATLAB软件。

安装过程通常是简单的,只需按照提示一步一步执行即可。

安装完成后,您可以根据需要进行一些个性化设置,如选择默认工作目录和字体大小。

3. MATLAB的基本命令和运算符MATLAB的基本命令和运算符与其他编程语言类似,包括数学运算符(加减乘除、幂运算等)、逻辑运算符(与或非等)和比较运算符(等于、大于、小于等)。

您可以使用MATLAB作为计算器来进行简单的数学计算,如计算平方根、三角函数等。

4. MATLAB的变量和数据类型在MATLAB中,您可以使用变量来存储和操作数据。

MATLAB支持多种数据类型,包括数值、字符、逻辑和结构等。

您可以使用赋值语句将数据存储在变量中,并使用变量进行计算和操作。

5. MATLAB的数组和矩阵操作MATLAB以矩阵为基础进行计算,因此对于初学者来说,了解如何创建、操作和计算矩阵是至关重要的。

您可以使用MATLAB提供的函数来创建矩阵,并使用索引和运算符对矩阵进行操作。

第二部分:MATLAB编程和算法1. MATLAB的脚本文件和函数MATLAB提供了编写脚本文件和函数的能力,以便在单个文件中组织代码。

您可以使用脚本文件来一次性执行一系列MATLAB命令,而函数则可以封装一段可重复使用的代码块。

2. MATLAB控制结构MATLAB提供了多种控制结构,如条件语句(if-else)、循环语句(for、while)和跳转语句(break、continue)。

简单易学的MATLAB编程入门指南

简单易学的MATLAB编程入门指南

简单易学的MATLAB编程入门指南MATLAB是一种强大而广泛应用于科学计算与工程开发中的高级编程语言和环境。

它可以帮助工程师、科学家和学生快速、高效地进行数据分析、算法开发和可视化。

本文将为初学者提供一份简单易学的MATLAB编程入门指南,帮助他们快速上手并应用于实践。

第一章:MATLAB的安装与基本概念在开始学习MATLAB之前,首先需要正确安装MATLAB软件。

MATLAB官方网站提供了支持不同操作系统的安装程序,用户可以根据自己的需要进行下载。

安装完成后,打开软件,熟悉界面布局与基本概念,如命令窗口、编辑器、工程管理器等。

第二章:MATLAB基本语法与数据类型MATLAB基于矩阵与向量运算,因此掌握基本的数据类型与运算是编写MATLAB程序的基础。

本章将介绍MATLAB的基本语法规则、变量与常量的定义、数学运算、逻辑运算等知识点,并通过实例进行演示。

第三章:MATLAB的函数与脚本MATLAB中的函数与脚本是编写程序的重要组成部分。

本章将详细介绍函数与脚本的定义与使用方法,并讲解函数与脚本之间的区别。

同时,还会介绍常用的MATLAB内置函数,如plot、sqrt、sin等,以及如何自定义函数。

第四章:MATLAB的矩阵与向量操作矩阵与向量是MATLAB最常用的数据结构,也是实现数据分析与算法开发的核心。

本章将介绍如何创建矩阵与向量、对矩阵与向量进行计算与操作,并涉及常见的矩阵运算、线性代数运算、数据筛选与排序等技巧。

第五章:MATLAB的数据可视化MATLAB提供了丰富的绘图函数和工具箱,可以方便地进行数据可视化与图形展示。

本章将介绍如何使用MATLAB进行简单的二维和三维绘图,包括折线图、散点图、柱状图、饼图、曲面绘制等。

同时,还会介绍如何设置图形属性、添加图例和坐标轴标签等。

第六章:MATLAB的数据分析与统计MATLAB提供了丰富的数据分析与统计函数,可以方便地进行数据预处理、特征提取和模型评估等工作。

一维条形码生成与识别技术[EAN-13]

一维条形码生成与识别技术[EAN-13]

⼀维条形码⽣成与识别技术[EAN-13]⼀维条形码⽣成与识别技术 [EAN-13]1、引⾔条形码(简称条码)技术是集条码理论、光电技术、计算机技术、通信技术、条码印制技术于⼀体的⼀种⾃动识别技术。

条形码是由宽度不同、反射率不同的条(⿊⾊)和空(⽩⾊),按照⼀定的编码规则编制⽽成,⽤以表达⼀组数字或字母符号信息的图形标识符。

条形码符号也可印成其它颜⾊,但两种颜⾊对光必须有不同的反射率,保证有⾜够的对⽐度。

条码技术具有速度快、准确率⾼、可靠性强、寿命长、成本低廉等特点,因⽽⼴泛应⽤于商品流通、⼯业⽣产、图书管理、仓储标证管理、信息服务等领域。

 本⽂针对EAN-13条码,介绍了其格式、编码规则等技术特点,并在Visual C++ 6.0环境下实现了⼀维条码的图像⽣成与识别,具有较好的应⽤价值。

2、EAN-13条形码简介⼀维条码主要有EAN 和 UPC 两种,其中EAN码是我国主要采取的编码标准。

EAN是欧洲物品条码(European Article Number Bar Code)的英⽂缩写,是以消费资料为使⽤对象的国际统⼀商品代码。

只要⽤条形码阅读器扫描该条码,便可以了解该商品的名称、型号、规格、⽣产⼚商、所属国家或地区等丰富信息。

EAN通⽤商品条码是模块组合型条码,模块是组成条码的最基本宽度单位,每个模块的宽度为0.33毫⽶。

在条码符号中,表⽰数字的每个条码字符均由两个条和两个空组成,它是多值符号码的⼀种,即在⼀个字符中有多种宽度的条和空参与编码。

条和空分别由1~4个同⼀宽度的深、浅颜⾊的模块组成,⼀个模块的条表⽰⼆进制的“1”,⼀个模块的空表⽰⼆进制的“0”,每个条码字符共有7个模块。

即⼀个条码字符条空宽度之和为单位元素的7倍,每个字符含条或空个数各为2,相邻元素如果相同,则从外观上合并为⼀个条或空,并规定每个字符在外观上包含的条和空的个数必须各为2个,所以EAN码是⼀种(7,2)码。

EAN条码字符包括0~9共10个数字字符,但对应的每个数字字符有三种编码形式,左侧数据符奇排列、左侧数据符偶排列以及右侧数据符偶排列。

2024版matlab基础知识课件

2024版matlab基础知识课件
数值微分
通过数值方法求解函数的导数或微分,如差分法、中心差分法、五点差分法等。
符号计算入门
符号表达式
在MATLAB中创建符号表达式,进行符号运算和 化简。
符号函数
使用MATLAB内置的符号函数进行符号计算,如 求导、积分、极限等。
符号方程求解
利用MATLAB的符号计算功能求解代数方程、常 微分方程等。
数据导入导出方法
数据导入
使用`importdata`、`xlsread`、 `csvread`等函数导入不同格 式的数据文件,如Excel、
CSV等。
数据导出
利用`xlswrite`、`csvwrite`等 函数将数据导出为Excel、 CSV等格式的文件。
自定义格式导入导出
通过编写自定义函数,实现特 定格式数据的导入和导出。
通过实例演示如何在Simulink 中建立控制系统模型,包括模 型的构建、参数设置、仿真运 行等。
介绍Simulink的高级功能,如 子系统、模型引用、变量大小 设置等,并解释其作用和用法。
MATLAB编译器使用指南
MATLAB编译器概述
简要介绍MATLAB编译器的概念、作用及将MATLAB程序编译为独立 应用程序的过程。
表达式求值
遵循先乘除后加减的运算优先级,可使用括号改变运算顺序。
控制结构
01
条件语句
使用`if`、`elseif`、`else`关键字实现 条件判断。
开关语句
使用`switch`和`case`关键字实现多 分支选择结构。
03
02
循环语句
使用`for`和`while`循环结构实现重 复执行代码块。
错误处理
编译过程详解
详细解释MATLAB编译器的编译过程,包括预处理、编译、链接等步 骤,并介绍编译过程中可能遇到的问题及解决方法。

Matlab第一教学与上机讲述免费全文阅读

Matlab第一教学与上机讲述免费全文阅读
2)有足够的安装空间,不少于4G;
3)文件名:无空格、无中文的文件夹作为程序的安 装文件夹。
第一章 MATLAB操作基础
二、 MATLAB 安装
具体安装:
第一章 MATLAB操作基础
三、MATLAB的开发环境
1、MATLAB系统的组成 ① MATLAB开发环境 ② MATLAB数学函数库 ③ MATLAB语言 ④ 图形功能 ⑤ 应用程序接口 五个部分。
(5)隐藏窗口
命令输入: edit---文本程序编辑窗口 figure---图像窗口 guide---guide窗口 也可在菜单栏中选择对应窗口
选择窗口的显示形式: Desktop—Desktop Layout
四、MATLAB的启动与退出
1、MATLAB系统的启动 (1)在桌面上双击MATLAB快捷方式图标。 (2)在开始菜单中单击MATLAB项。 (3)在MATLAB安装目录中双击MATLAB快捷方式
MATLAB的帮助系统(续)
④>>lookfor image %查找有关图像的函数和命令。 2、在线帮助浏览器
MATLAB设计了全新的在线帮助浏览器, 当在View菜单中选择了Help选项,或在Help菜 单中选择了MATLAB Help选项时,都可以打 开帮助浏览器。 3、演示帮助
选择Help菜单中的Demos选项,可以打开 演示窗口,观看要查询项的动画演示。
函数的主要用法。
实验一 MATLAB熟悉与操作 基础
三、实验内容(续) (1) 已知a=73,求a的平方根;
(2)已知x的值域区间为1π-4π,求其正
玄值,余玄值。
实验一 MATLAB熟悉与操作基础
四、完成上机实验报告;并在下节课之 前上交。

Matlab入门教程(很齐全)

Matlab入门教程(很齐全)

Matlab入门教程(很齐全)嘿,伙计们!今天我要给大家介绍一个超级好玩的东西——Matlab入门教程!这可是一个让你轻松掌握Matlab的绝佳机会,不管你是编程小白还是有经验的小伙伴,都能在这里找到属于自己的一片天地。

不多说了,让我们开始吧!我们来了解一下Matlab是什么。

Matlab是一种高级数学软件,它可以帮助你进行各种复杂的计算和数据处理。

它的特点是界面友好,操作简单,而且功能强大。

无论你是学数学、物理、工程还是计算机专业的学生,都可以用Matlab来提高自己的技能。

我们该如何开始学习Matlab呢?你需要安装Matlab软件。

这个过程非常简单,只需要按照提示一步步操作就可以了。

安装完成后,我们就可以开始学习了。

在Matlab中,有很多基本的操作和函数可以使用。

比如,我们可以用变量来存储数据,用算术运算符来进行简单的计算,用逻辑运算符来进行条件判断等等。

这些都是Matlab的基本操作,掌握了这些,你就可以开始进行更复杂的计算了。

除了基本操作之外,Matlab还有很多强大的函数可以使用。

这些函数可以帮助你完成各种各样的任务,比如绘制图形、分析数据、解决方程等等。

学会使用这些函数,可以让你的计算变得更加高效和准确。

学习Matlab并不是一蹴而就的事情。

你需要不断地练习和实践,才能真正掌握它。

我建议你可以找一些实际的问题来尝试解决,这样既能巩固所学的知识,又能提高自己的动手能力。

Matlab是一个非常有趣且实用的工具。

只要你肯下功夫去学习,相信你一定能够掌握它。

今天的教程就到这里啦!希望大家能够喜欢这个教程,也希望大家能够在学习过程中取得好成绩!下次再见啦!。

matlab入门图文教程

matlab入门图文教程

02
MATLAB基础操作
界面介绍
MATLAB主窗口
包括命令窗口、工作空间、命令历史和当前 文件夹等部分,是进行MATLAB操作的主要
界面。
编辑器窗口
用于显示MATLAB绘制的图形和图像,支持 多种图形格式。
图形窗口
用于编写和编辑MATLAB代码,提供语法高 亮、代码折叠等功能。
工具箱窗口
提供MATLAB各种工具箱的访问和使用,如 信号处理、图像处理等。
matlab入门图文教程
目录
• MATLAB概述与安装 • MATLAB基础操作 • 图形绘制与可视化 • 数值计算与数据分析 • 程序设计与优化 • MATLAB高级功能与应用
01
MATLAB概述与安装
MATLAB简介
MATLAB(Matrix Laboratory)是一款由 MathWorks公司开发的商业数学软件,主要用于算法
脚本文件与函数文件
脚本文件是一系列按顺序执行的命令,而函数文件则定义了一个或多个可重用的函数。脚 本文件主要用于简单任务或一次性操作,而函数文件则适用于更复杂的计算和数据处理任 务。
变量与数据类型
MATLAB支持多种数据类型,包括数值、字符、逻辑值等。变量无需声明即可直接使用, 且变量名区分大小写。
运算符与函数
01
算术运算符
包括加(+)、减(-)、乘( *)、除(/)等,用于进行基 本的数学运算。
02
关系运算符
包括等于(==)、不等于( ~=)、大于(>)、小于(< )等,用于比较两个值的大小 关系。
03
逻辑运算符
包括与(&&)、或(||)、非 (~)等,用于进行逻辑运算 。

条码检测系统——基于MATLAB的一维条码识别

条码检测系统——基于MATLAB的一维条码识别

条码检测系统——基于MATLAB的⼀维条码识别条码检测系统——基于MATLAB的⼀维条码识别摘要:条码技术是如今应⽤最⼴泛的识别和输⼊技术之⼀,由于其包含的信息量⼤,识别错误率低⽽在各个⽅⾯得到很⼤的重视。

它发展迅速并被⼴泛应⽤于于⼯业、商业、图书出版、医疗卫⽣等各⾏各业。

由我国⽬前发展现状来看,条码的正常使⽤受到条形码印刷质量和商品运输过程的影响,并且传统的条码识读⽅式是采⽤光电识读器,条码图像对光的不同反射效果也必然会对条码的识读产⽣影响,⽽⼀般条码在搬运过程中条码会不可避免的破损,所以对质量较差的条码的条码的识别尤为重要。

不同的条码有着不同的识读过程。

本设计研究⼀种基于图像处理⽅式的识读⽅法,通过计算机辨识来解决条码印刷质量不佳和条码变形等问题。

该⽅法是采⽤摄像头采集条码图像,通过照相采集条码图像的⽅法避免了线性扫描器逐⾏扫描所产⽣的问题,同时简化了扫描条码图像的操作。

然后通过⼀定的数字图像处理算法处理进⾏译码。

译码算法主要分为两部分:第⼀部分⾸先对采集的条码图像进⾏预处理,图像的预处理包括图像分割,图像滤波等,良好的图像处理将对后⾯实现正确译码有重⼤贡献;第⼆部分就是对预处理后的条码图像进⾏译码,我们根据相似边距离来判别条码字符,再通过译码、校验、纠错处理来识读条码,得到条码所表⽰的⽂本信息。

与⽤条码识读器硬件进⾏译码相⽐,软件译码具有更⼤的灵活性和较低的成本,所以具有很⼤的市场空间。

借助于matlab软件的功能我们完成这次译码⼯作。

关键词:图像处理图像分割条形码识别 EAN-13 相似边距识别图像滤波MatlabThe System Of Bar-Code Examination——1D Bar-Code recognition based on MATLABAbstract: Nowadays Bar-Code is a very popular technique ofidentification and input. It has been taken serious because of it’s large information and low error rate. It develops very quickly and has already been applied in industry,忽略merce,publishing,medical sanitation and so on. It can be seen from the actualities in our country that the use of Bar-Code is influenced by the printing quality and goods transportation, and besides, the traditional mode of recognition is using optical scanner so that the recognitinon will be consequentially affected by the different reflection of code image by the light. The general course of the removal barcode bar code will inevitably damage, so poor quality bar code bar code identification is particularly important.Different Bar-Code has different recognition process. This paper researches into a method based on digital image processing mode to resolve the problems of poor printing quality and code distortion, which uses the vidicon to take pictures of code images so as to avoid the traditional questions brought by the line-by-line scanning. And then applies the digital image processing algorithms to recognize the code, which includes two steps: the first is image pretreatments, the second is using statistic method and the distance of edge to similar edge method to recognize the code character. 忽略paring with decoding with special Bar-Code identification hardware, decoding with software is more flexible, and the cost is also 忽略paratively low. Hence, Bar-Code has a very clear future of development. This research is realized by Matlab.Key word: image processing, Bar-Code recognition, EAN-13, the distance of edge to similar edge, image filters,Matlab⽬录第1章引⾔ (01)1.1 条码技术概述 (01)1.2 Matlab应⽤图像处理 (02)1.3本⽂的研究意义及内容 (03)1.3.1 研究意义 (03)1.3.2 研究内容及本⽂的组织安排 (04)第2章⼀维条码技术 (05)2.1 ⼀维条码的简介 (05)2.2 ⼀维条码符号的结构 (05)2.3 EAN码简述 (06)2.4 EAN-13码符号的特征 (07)2.4.1 EAN-13码字符集 (08)2.4.2 EAN-13码符号结构 (09)2.5 EAN-13码的校验纠错 (11)第3章条码图像的预处理............................. . (12)3.1 图像分割理论 (12)3.1.1 图像分割的定义 (12)3.1.2 图像分割的算法类 (13)3.1.3 图像分割结果 (14)3.2 图像灰度及⼆值化 (15)3.3 图像加噪仿真 (16)3.3 图像的滤波 (16)3.3.1 图像的平滑滤波 (16)3.3.2 形态学滤波 (17)第4章条码的译码⽅法 (20)4.1 译码⽅案的选择 (20)4.2 相似边距法介绍 (21)4.3. 条码字符的判别 (22)第5章条码译码的基本原理 (25)5.1 EAN_13的译码原理分析 (25)5.2译码结果分析 (26)第6章结论 (28)参考⽂献 (30)附录 (36)第1章引⾔1.1 条码技术概述在信息时代的今天,计算机的应⽤⼰和我们的⽣活紧密地联系在⼀起。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

m a t l a b一维条形码码字识别程序close allI = imread('E:\txm.jpg');J= rgb2gray(I);figure(1)imshow(J);title('灰度化图像 ');[e1,e2]=size(J);Im=imcrop(J,[e2/2-200,e1/2-200,400,400]); figure(2)subplot(1,2,1),imshow(Im)title('中心区域 ');subplot(1,2,2),imhist(Im)title('中心区域直方图');[xa,ya]=size(Im);b=double(Im);zd=double(max(Im)) ;zx=double(min(Im)) ;T=double((zd+zx))/2;count=double(0);while 1count=count+1;S0=0.0; n0=0.0;S1=0.0; n1=0.0;for i=1:xafor j=1:yaif double(Im(i,j))>=TS1=S1+double(Im(i,j));n1=n1+1;elseS0=S0+double(Im(i,j));n0=n0+1;endendendT0=S0/n0;T1=S1/n1;if abs(T-((T0+T1)/2))<0.1break;elseT=(T0+T1)/2;endendcountTK=find(J<T);J(K)=0;K=find(J>=T);J(K)=255;figure(3)imshow(J)title(' 图像二值化 ');B=medfilt2(J,[5,1]);figure(4)imshow(B)title('中值滤波后图像');[y0,x0]=size(B);BW = edge(B,'log');figure(5);imshow(BW);title('边缘检测图像')%function code = barcode(pic) %条形码识别check_left = [13,25,19,61,35,49,47,59,55,11;... %左边数据编码,奇39,51,27,33,29,57, 5,17, 9,23]; %左边数据编码,偶check_right = [114,102,108,66,92,78,80,68,72,116]; %右边数据编码first_num = [31,20,18,17,12,6,3,10,9,5];%第一位数据编码bar = imread('E:\txm.jpg');%读输入条形码图片bar_Gray = rgb2gray(bar);%将RGB图片转换灰度图[a_hist x] = imhist(bar_Gray);hist_max = [];if a_hist(1)>a_hist(2)hist_max = [hist_max 1];endx = max(x);for i=2:xif a_hist(i)>a_hist(i-1) && a_hist(i)>a_hist(i+1)hist_max = [hist_max i];endendif a_hist(x)<a_hist(x+1)hist_max = [hist_max x+1];end[m,n] = size(hist_max);k = 0;max_1 = 0;max_2 = 0;for i=1:nif k<a_hist(hist_max(i))k = a_hist(hist_max(i));max_1 = hist_max(i);endendtemp = a_hist(max_1);a_hist(max_1) = 0;k = 0;for i=1:nif k<a_hist(hist_max(i))k = a_hist(hist_max(i));max_2 = hist_max(i);endenda_hist(max_1) = temp;if max_1>max_2k = max_1;max_1 = max_2;max_2 = k;endT = max_1;k = a_hist(max_1);for i=max_1:max_2if k>a_hist(i)k = a_hist(i);T = i;endend[m,n] = size(bar_Gray); %求灰度图的大小for i=1:m %对图像进行二值化处理for j=1:nif bar_Gray(i,j)>T%选择适当的阈值进行二值化处理bar_10(i,j) = 1;elsebar_10(i,j) = 0;endendend%imshow(bar_10);l = 0;%检测59根条形码for i=1:mk = 1;l = l+1;for j=1:n-1if bar_10(i,j)~=bar_10(i,j+1)%比较同一行相邻两点的颜色是否一致%bar_x(l,k) = i;bar_y(l,k) = j; %记录转折点的纵坐标k = k+1;%准备记录下一个数据点endif k>61 %点数大于60,该行应该删掉l = l-1;breakendendif k<61 %点数小于60,该行应该删掉l = l-1;endend[m,n] = size(bar_y);if m<=1 %查看条形码是否有效code = '0';fprintf(1,'GameOver!\n');returnendfor i=1:m%计算每根条形码的宽度for j=1:n-1bar_num(i,j) = bar_y(i,j+1) - bar_y(i,j);if bar_num(i,j)<0bar_num(i,j) = 0;endendendbar_sum = sum(bar_num)/m;%求每根条形码宽度的平均值k = 0;for i=1:59%计算59根条形码的总宽度k = k + bar_sum(i);endk = k/95;%计算单位条形码的宽度for i=1:59%计算每根条形码所占位数bar_int(i) = round(bar_sum(i)/k);endk = 1;for i=1:59%将条形码转换成二进制数if rem(i,2)for j=1:bar_int(i)%黑色条用1表示bar_01(k) = 1;k = k+1;endelsefor j=1:bar_int(i) %白色条用0表示bar_01(k) = 0;k = k+1;endendendif ((bar_01(1)&&~bar_01(2)&&bar_01(3))...%判断起始符是否正确&&(~bar_01(46)&&bar_01(47)&&~bar_01(48)&&bar_01(49)&&~bar_01(50))... %判断中间分隔符是否正确&&(bar_01(95)&&~bar_01(94)&&bar_01(93))) %判断终止符是否正确l = 1;for i=1:6 %将左侧42位二进制数转换为十进制数bar_left(l) = 0;for k=1:7bar_left(l) = bar_left(l)+bar_01(7*(i-1)+k+3)*(2^(7-k));endendl = 1;for i=1:6 %将右侧42位二进制数转换为十进制数bar_right(l) = 0;for k=1:7bar_right(l) = bar_right(l)+bar_01(7*(i+6)+k+1)*(2^(7-k)); k = k-1;endl = l+1;endendnum_bar = '';num_first = 0;first = 2;for i=1:6%从左边数据编码表中查出条形码编码数字for j=0:1for k=0:9if bar_left(i)==check_left(j+1,k+1)num_bar = strcat(num_bar , num2str(k));switch first%记录左边数据的奇偶顺序case 2first = j;break;case 1num_first = num_first + j*(2^(6-i));break;case 0num_first = num_first + ~j*(2^(6-i));break;otherwisebreak;endendendendendfor i=1:6%从右边数据编码表中查出条形码编码数字if bar_right(i)==check_right(j+1)num_bar = strcat(num_bar , num2str(j));endendendfor i=0:9%从第一位数据编码表中查出第一位数字if num_first==first_num(i+1)num_bar = strcat(num2str(i) , num_bar);break;endendif numel(num_bar)~=13fprintf(1,'Please Turn It Around!\n');returnendcheck_code = 0;for i=1:12 %计算校验码if rem(i,2)check_code = check_code + str2double(num_bar(i));elsecheck_code = check_code + str2double(num_bar(i))*3;endendcheck_code = rem(check_code,10);if check_code>0check_code = 10 - check_code;endif check_code==str2double(num_bar(13)) %判断校验码是否正确code = num_bar;elsefprintf(1,'Please Turn It Around!\n');returnend。

相关文档
最新文档