基于MatLab的海量数据处理方法
2013年数学建模竞赛培训内容(新)

2013年数学建模竞赛培训内容建模竞赛概论(论文撰写,论文评阅及其注意事项)
一、图论
图论算法(包括最短路、网络流、二分图等算法)
二、数学软件
1.Matlab
2. 优化模型建立与求解及lingo软件运用
3.统计软件
SPSS统计软件聚类分析的基本操作介绍
SPSS统计软件主成分分析、因子分析的基本操作介绍
三、数据处理
1.数据的统计分析与描述
2.基于matlab的海量数据的处理方法
3.近年来全国大学生数学建模竞赛中大型数据的处理范例分析
四、运筹学:线性规划、动态规划、排队论
五、多项式插值、最小二乘曲线拟合、微分方程数值解法及其在数学建模中的应用
1.多项式插值的基本原理及MATLAB的实现
2.数据插值建模案例的分析与求解
3.最小二乘曲线拟合的基本原理及MATLAB实现
4.曲线拟合建模案例的分析与求解
5.微分方程数值解法及其MATLAB实现
6.微分方程建模案例分析与求解
六、模糊数学理论简介、灰色系统理论
1.模糊综合评价方法及应用案例
2.数学建模中常用的预测方法
3.灰色预测模型及其应用
4.评价与决策的数学模型
5.长江水质的综合评价分析
七、优化智能算法
1.模拟退火法算法、神经网络算法、遗传算法的Matlab实现
2.真题模型的遗传算法求解。
MATLAB大数据处理与分析方法

MATLAB大数据处理与分析方法导语:随着互联网和计算机技术的不断发展,海量数据的产生和存储给传统的数据处理和分析带来了巨大挑战。
在这个信息爆炸的时代,如何有效地处理大数据成为了一个迫切需要解决的问题。
而MATLAB作为一种强大的数值计算软件,提供了多种方法和工具来处理和分析大数据。
本文将从不同的角度介绍MATLAB在大数据处理与分析中的应用方法。
1.数据的导入与读取对于大数据的处理,首先需要将数据导入到MATLAB环境中。
MATLAB提供了多种数据格式的读取函数,包括常见的文本文件、Excel文件、数据库等。
根据不同的数据格式,可以使用不同的函数进行读取和导入操作。
例如,对于文本文件,可以使用`readtable`函数将数据读取为表格形式;对于Excel文件,可以使用`xlsread`函数读取;而对于数据库,可以使用`database`函数连接数据库并读取数据。
2.数据的清洗与处理在大数据分析中,往往需要对数据进行清洗和预处理,以去除噪声、处理缺失值等。
MATLAB提供了丰富的函数和工具来进行数据清洗和处理。
例如,`ismissing`函数可以用于检测缺失值,`fillmissing`函数可以用于填充缺失值;`isnan`函数可以用于检测NaN值,`rmmissing`函数可以用于删除包含缺失值的行。
此外,MATLAB还提供了强大的统计工具箱和机器学习工具箱,可以用于数据的降维、特征选择和异常值检测等操作。
3.数据的可视化与探索数据可视化是大数据分析中不可或缺的环节,它能够直观地展示数据的特征和规律。
MATLAB提供了丰富的绘图函数和工具,可以用于生成各种类型的图表,如散点图、折线图、柱状图等。
在绘制图表时,可以通过调整颜色、线型、标签等参数来使图表更加美观和易于理解。
此外,MATLAB还支持交互式的绘图,可以通过缩放、平移、旋转等操作来查看数据的不同维度和细节。
4.数据的分析与建模在大数据处理和分析中,数据的分析和建模是关键步骤。
在Matlab中如何进行大数据处理

在Matlab中如何进行大数据处理引言随着现代科技的快速发展,我们已经进入了一个大数据时代。
在各行各业中,海量的数据被不断地收集和生成。
如何高效地处理这些大数据成为了一个重要的问题。
Matlab作为一种强大的数据分析和计算工具,提供了许多实用的函数和方法来进行大数据处理。
本文将介绍在Matlab中如何进行大数据处理的一些技巧和方法。
一、数据加载在进行大数据处理之前,首先需要将数据加载到Matlab中。
Matlab提供了多种加载数据的方式,包括读取文本文件、Excel文件、数据库等。
对于较大的数据文件,可以通过使用适当的文件格式和读取方法来提高加载速度。
在读取大型文本文件时,可以使用fread或者textscan函数。
fread函数可以按照指定的数据类型读取二进制文件,而textscan函数可以按照行读取文本文件,并且支持多种数据格式和分隔符。
对于Excel文件,可以使用xlsread函数来读取数据,该函数可以指定要读取的Sheet和范围。
对于数据库中的大数据表,可以使用Database Toolbox中的函数来进行快速加载。
这些函数可以轻松地连接到数据库,并且支持高级数据检索和过滤。
二、数据预处理在进行大数据处理之前,通常需要对原始数据进行预处理。
预处理的目的是清洗数据、去除异常值、填充缺失值、进行数据转换等。
Matlab提供了丰富的函数和工具箱来进行数据预处理。
常见的数据预处理包括平滑处理、数据插补、特征选择和降维等。
平滑处理可以通过滤波、移动平均等方法来消除数据中的噪声和波动。
数据插补可以通过线性插值、插值法、回归方法等来填充缺失值。
特征选择可以通过统计方法和机器学习算法来选择对数据建模具有重要意义的特征。
降维可以使用主成分分析(PCA)和独立成分分析(ICA)等方法来减少数据的维度,并保留原始数据中的主要信息。
三、数据分析在大数据处理中,数据分析是至关重要的一步。
通过对数据进行统计分析、模式识别和机器学习等方法,可以从数据中发现有价值的信息和规律。
使用Matlab进行数据清洗与预处理的技巧

使用Matlab进行数据清洗与预处理的技巧数据作为当今社会中最宝贵的资源之一,其应用和价值已经渗透到各个领域。
然而,将海量的原始数据转化为可用的信息却是一项相当繁琐而又重要的任务。
在数据处理的过程中,数据清洗和预处理是关键的步骤,它们对于保证数据的准确性、可靠性和完整性起着至关重要的作用。
在Matlab中,有丰富的工具和函数可以用来实现对数据的清洗和预处理。
下面将介绍一些常用的技巧和方法。
1. 数据缺失值处理在原始数据中,常常会存在一些缺失值,这些缺失值会对后续分析和建模造成影响。
在处理缺失值时,可以使用Matlab中的一些函数,如isnan()和ismissing()来判断数据中是否存在缺失值,并采用插补或删除等方法进行处理。
例如,可以使用linearinterp()函数进行线性插补,或使用fillmissing()函数直接填充缺失值。
2. 异常值检测与处理异常值是指与其他观测数据相比明显偏离的数据点。
在许多情况下,异常值可能是数据录入错误或其他异常情况导致的,需要对其进行处理或排除。
在Matlab 中,可以使用boxplot()函数或zscore()函数等方法来检测和处理异常值。
3. 数据重复值处理数据中的重复值可能会导致分析和建模的结果受到严重影响。
在Matlab中,可以使用unique()函数或duplicated()函数来查找和删除重复值。
如果需要保留其中一组重复的数据,可以使用removeDuplicates()函数。
4. 数据规范化和标准化在进行数据分析和建模之前,常常需要对数据进行规范化或标准化,以便将不同尺度或量纲的数据转化为统一的标准。
在Matlab中,可以使用rescale()函数将数据映射到指定的范围或使用zscore()函数进行标准化。
5. 数据变换与特征选择在某些情况下,原始数据可能需要进行变换或选择特征,以便更好地适应分析和建模的需求。
在Matlab中,可以使用log()函数、sqrt()函数等进行数据变换,或使用featureSelection()函数进行特征选择。
利用Matlab进行数据挖掘和预测模型构建的技巧

利用Matlab进行数据挖掘和预测模型构建的技巧引言:在当今信息爆炸的时代,数据成为了一种宝贵的资源。
然而,如何从海量的数据中获取有价值的信息,成为了许多领域研究的一大挑战。
数据挖掘和预测模型构建成为了解决这一问题的重要手段。
本文将介绍利用Matlab进行数据挖掘和预测模型构建的一些技巧,帮助读者在实践中更好地运用这一工具。
一、数据挖掘技巧1. 数据清洗数据清洗是数据挖掘的第一步,目的是去除噪声、缺失值和重复数据等。
在Matlab中,可以使用`isnan`函数来检测缺失值,并使用`unique`函数去除重复数据。
对于噪声数据,可以通过可视化分析或统计方法进行识别和处理。
数据清洗能够提高挖掘模型的精度和可靠性。
2. 特征选择特征选择是对数据进行预处理的关键步骤。
选择合适的特征能够提高模型的性能和解释能力。
在Matlab中,可以使用相关系数、信息熵和主成分分析等方法进行特征选择。
此外,还可以通过可视化分析和专业知识进行特征的筛选和提取。
3. 数据可视化数据可视化是帮助理解数据的强大工具。
Matlab中提供了丰富的绘图函数和工具箱,可以绘制各种类型的图表和图形。
通过数据可视化,可以直观地发现数据之间的关系和规律,并辅助特征选择和模型构建。
4. 模型选择与评估在数据挖掘中,选择合适的模型对于预测结果的准确性至关重要。
常用的模型包括线性回归、支持向量机、决策树等。
在Matlab中,可以使用`fitlm`函数进行线性回归分析,使用`svmtrain`函数进行支持向量机模型训练,使用`fitctree`函数进行决策树的构建。
模型评估可以使用交叉验证、AUC、F值等指标进行。
二、预测模型构建技巧1. 数据预处理在预测模型构建中,数据预处理是一个至关重要的步骤。
预处理包括数据清洗、归一化、标准化、特征工程等。
Matlab中提供了丰富的工具函数,例如`normalize`函数进行数据归一化,`zscore`函数进行数据标准化,`featureScaling`函数进行特征缩放。
使用MATLAB进行数据分析的基本步骤

使用MATLAB进行数据分析的基本步骤数据分析是现代科学研究和工程实践中不可或缺的一环。
随着大数据时代的到来,对于海量数据的分析和处理变得尤为重要。
MATLAB作为一种强大的数据分析工具,能够帮助研究人员和工程师高效地进行数据分析。
本文将介绍使用MATLAB进行数据分析的基本步骤。
一、数据准备在进行数据分析之前,首先需要准备好待分析的数据。
数据可以来自于各种渠道,如实验采集、传感器监测、数据库等。
在导入数据之前,需要对数据进行预处理,包括数据清洗、缺失值处理、异常值检测等。
MATLAB提供了丰富的数据处理函数和工具箱,可以方便地完成这些任务。
二、数据导入在MATLAB中,可以使用多种方式导入数据,如直接读取文本文件、Excel文件、数据库查询等。
对于文本文件,可以使用readtable函数进行导入,对于Excel文件,可以使用xlsread函数进行导入。
对于大型数据库,可以使用Database Toolbox进行连接和查询操作。
导入数据后,可以使用MATLAB的数据结构进行存储和处理。
三、数据可视化数据可视化是数据分析的重要环节,能够直观地展示数据的分布和趋势。
MATLAB提供了丰富的绘图函数和工具箱,可以绘制各种类型的图形,如折线图、散点图、柱状图等。
通过调整绘图参数和添加标签,可以使图形更加美观和易于理解。
数据可视化可以帮助研究人员和工程师更好地理解数据,发现潜在的规律和关联。
四、数据分析在数据可视化的基础上,可以进行更深入的数据分析。
MATLAB提供了丰富的统计分析函数和工具箱,包括描述统计分析、假设检验、方差分析、回归分析等。
可以根据具体的问题选择合适的分析方法,并使用MATLAB进行计算和结果展示。
数据分析的目的是从数据中提取有用的信息和知识,为进一步的决策和优化提供依据。
五、模型建立与预测在某些情况下,可以通过建立数学模型对数据进行预测和优化。
MATLAB提供了强大的建模和仿真工具,如曲线拟合、回归分析、神经网络等。
使用Matlab进行大数据分析的技术指南
使用Matlab进行大数据分析的技术指南一、引言大数据时代以来,各行各业纷纷涌向了数据分析这个领域,而作为一种强大的工具,Matlab在大数据分析中发挥了重要作用。
本文将为大家提供一份使用Matlab进行大数据分析的技术指南,帮助您更好地利用Matlab来处理和分析海量数据。
二、数据导入与预处理在进行大数据分析之前,首要任务是将数据导入Matlab并做好预处理。
Matlab 提供了多种方式来导入数据,比如读取文本文件、Excel文件、数据库等。
可以根据具体情况选择最适合的导入方式。
在导入数据后,我们需要对数据进行预处理。
预处理工作包括数据清洗、缺失值处理和异常值处理等。
Matlab提供了丰富的工具箱,比如Statistics and Machine Learning Toolbox,可以方便地进行数据预处理。
三、数据可视化与探索在大数据分析中,数据可视化是非常重要的一环。
通过可视化可以更好地理解数据背后的规律和趋势。
Matlab提供了强大的绘图工具,可以绘制各种类型的图表,比如散点图、柱状图、折线图等。
除了基本的图表绘制外,Matlab还提供了交互式可视化工具,比如Data Cursor 和Data Brush,可以帮助用户更直观地探索数据。
此外,还有一些高级的可视化工具箱,如Mapping Toolbox和Image Processing Toolbox,可以满足更特定领域的需求。
四、特征选择与降维在进行大数据分析时,常常需要从海量的特征中选择合适的特征以提高模型的准确性和效率。
Matlab提供了一些特征选择和降维的工具,比如Feature Selection Toolbox和Feature Transformation Toolbox。
这些工具可以帮助我们实现特征的筛选和降维,减少特征维度,提高模型的效率和泛化能力。
五、数据建模与分析在进行大数据分析时,数据建模是重中之重。
Matlab提供了多种建模工具,比如Statistics and Machine Learning Toolbox和Neural Network Toolbox。
基于MatLab的海量数据处理方法
计 算机与数字工程
Co ue mp tr& Diia gn e ig gt l En ie rn
Vo. 0 No 5 14 .
89
基 于 MaL b的 海 量 数 据 处 理 方 法 ta
周红进 王 秀森
大连 161) 10 8 ( 军大连舰艇学院航海系 海
c m p t to e d o em e o y S v r l y o e t n mo y s a ea edic s d v aa c mpu a i n e mp e n tv rf st a e sp o o u a i n n e sm r m r . e e a wa s t x e d me r p c r s us e i o t to xa l ,a d i e i e h tls r — i c s i g tme i e e fmo e m e e sn i sne d d i r mor s a l c t d t a a ma rx i h a a pr c s i g ago i h r y i l a e o d t t i n t e d t o e sn l rt r o L Ke or M a Ia yW ds t b,ma sv a a p c s i e d t ,s a e,tme,m a rx c m p t to i ti o u a i n,me r mo y
TP 9 31 中图分类号
M a sv t r c s e h d s d o a l b s i e Da a P o e sM t o s Ba e n M ta
ZHOU n j WANG ue Ho gi n Xisn
( p rm e to vg to Dain Na a a e fPLA 。Dain 1 6 8) De at n fNa ia in, l v lAc d my o a l 1 01 a
在Matlab中处理大规模数据的技巧与方法
在Matlab中处理大规模数据的技巧与方法引言在当今信息爆炸的时代,大规模数据的处理成为了一项非常重要的任务。
无论是学术研究、商业应用还是社会发展,都离不开对海量数据的处理与分析。
Matlab 作为一款强大的科学计算软件,提供了丰富的工具和函数,使得处理大规模数据变得更加高效。
本文将介绍一些在Matlab中处理大规模数据的技巧与方法,帮助读者更好地利用这一工具来应对数据处理的挑战。
一、内存管理处理大规模数据时,内存管理是一个至关重要的技巧。
由于数据量大,可能会造成内存溢出的问题,因此需要采取一些措施来有效管理内存。
1. 使用低内存数据结构在处理大规模数据时,可以使用低内存占用的数据结构,如表格数组(table)或时间表数组(timetable)代替普通的数组。
这些数据结构能够更有效地占用内存,同时提供灵活的数据访问方法。
2. 分批处理数据如果数据量太大无法一次性加载进内存,可以采用分批处理的方法。
将数据分为多个批次,每次只加载部分数据进行处理。
这样不仅可以减轻内存压力,还可以提高处理速度。
二、并行计算在处理大规模数据时,利用并行计算可以充分利用计算机的多核处理器,加快数据处理速度。
1. 并行循环可以使用parfor循环来实现并行计算。
parfor循环与普通的for循环类似,但它可以将多个迭代同时分配给不同的处理器核心进行计算,从而提高计算效率。
2. 利用并行计算工具箱Matlab提供了Parallel Computing Toolbox,通过使用这个工具箱中的函数和工具,可以很方便地实现并行计算。
例如,可以使用parpool函数来创建一个计算池,然后使用parfor函数进行并行计算。
三、数据预处理在处理大规模数据之前,进行数据预处理是非常必要的。
通过对数据进行清洗、去除异常值、归一化等操作,可以提高数据质量,减少干扰因素,从而得到更准确的结果。
1. 数据清洗对于大规模数据,可能存在数据缺失、重复等问题。
Matlab技术在数据清洗中的应用
Matlab技术在数据清洗中的应用数据在现代社会中扮演着至关重要的角色。
然而,原始数据的质量往往需要经过清洗和整理才能得到准确、可靠的分析结果。
在这个过程中,Matlab技术的应用无疑发挥了重要作用。
本文将探讨Matlab在数据清洗中的应用,并讨论其在数据清洗过程中所能提供的效率和准确性。
一. 数据清洗的重要性在大数据时代,海量的数据涌入各个领域。
这些数据可能存在丢失、错误和不一致等问题。
而这些问题如果被忽略不处理,将为后续的数据分析和决策带来不确定性和风险。
因此,数据清洗是保证数据质量的重要环节。
二. Matlab技术在数据清洗中的基本应用Matlab是一种强大的数值分析和计算机编程环境,其具有灵活性和高效性。
在数据清洗过程中,以下几个方面是Matlab技术的主要应用。
1. 数据分析和可视化Matlab提供了丰富的数据分析工具和绘图函数,可以帮助我们深入了解数据的特点和问题。
通过使用Matlab的数据统计和数据可视化函数,我们可以对数据的分布、趋势以及异常值等进行全面分析。
这有助于我们确定清洗数据的策略和方法。
2. 数据清洗和转换使用Matlab可以方便地对数据进行清洗和转换。
例如,我们可以利用Matlab的数据处理函数快速识别和处理重复值、缺失值和异常值。
此外,通过Matlab的数据重构和变量转换函数,我们可以将数据从原始的格式转换为更符合分析需要的格式。
3. 数据匹配和合并在实际应用中,往往需要将来自不同来源的数据进行匹配和合并。
这就需要对各个数据集的关键变量进行匹配和整合。
Matlab提供了强大的数据处理和合并函数,可以帮助我们高效完成这个过程。
例如,利用Matlab的表格处理函数,我们可以根据不同变量的属性将多个数据集进行关联,从而得到丰富且全面的数据集。
4. 数据有效性验证在数据清洗过程中,对数据的有效性进行验证是至关重要的。
Matlab提供了各种统计测试和模型验证函数,可以帮助我们检查清洗后的数据是否符合我们的预期。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Nun/aw
TP391
1
引言
MatLab是一种得到广泛应用的科学计算软件。其全称
还可以自定义数据类型。Char、uim8、ira8型数据占用1个 字节,intl6、uintl6型数据占用2个字节,int32、uint32型数 据占用4个字节。single型数据占用4个字节,int64、 uint64、double型数据占用8个字节,复数型数据占用的字
very
eaae
Iong if the data
anloLint
is very
Iarge.Matrix oomputation is used
in
reduce data processing duration instead 0f loop computation in such
to
since matrix computation is very efficient
1
4)计算F可夏可万面{面万厕
2.073f“,一-010-1,-I
荟
岛,得
够,再分析数据,发现放大后的数据除以5,则角速度数据 均小于128,于是决定采用int8型数据,这样所需存储空间 只需21G。经过这样的数据转换,最终,所需要的数据存储 空间缩小为原来的1/8。 2)扩大实际内存空间。一是通过增加内存条实现,二 是通过增加虚拟内存实现。增加虚拟内存就是将硬盘上的 存储空间分配出一部分做内存使用。经过这两种方法扩大 实际存储空问,是完全可以满足21G的存储要求的。 解决了存储空间的问题后,就可以运行程序了,现在 (下转第103页)
3海量数据处理的一些方法
海量数据的处理要综合考虑计算机的运行速度、计算 机内存、MatLab能够创建的矩阵最大维数这三个方面的因 素。CPU主频越高,数据处理速度越快。计算机内存越 大,能够在程序运行过程中创建的矩阵维数也越大,64位 的MatLab比32位MatLab能够创建的矩阵维数要大。在 数据量较小的情况下,比如M级数据,如果不是涉及到很 复杂的运算,可以通过建立单维数组的方式,通过采用for 或者while循环处理。这种数据处理的特点是,不需要创 建维数巨大的矩阵,不用进行矩阵运算,因此不需要占用较 大的内存空间,但是数据处理效率较低,程序运行时间将比 直接进行矩阵运算的程序要长。 但是当数据量特别大,或者循环次数特别巨大的时候, 这时候如果还用循环的方式,数据处理程序运行的时间将 会非常长,特别是对于在普通PC机上运行MatLah程序的 用户来说,这个时间将是难以接受的,有的甚至达到几十个 小时。这时候,就必须考虑对算法进行优化,也就是说尽量 避免使用循环结构设计算法,而要尽量构建矩阵,将循环运 算以矩阵运算的形式代替,从而充分利用MatLab矩阵运 算效率高的优点。这时候,很多情况下,需要构建的矩阵维 数将是非常巨大的。比如读进一个数据文件,该文件数据 持续时间4h,数据频率为10Hz,总计数据点数为144000, 如果要采用for循环处理数据,假设嵌套了一层for循环. 则最里层for循环命令需要执行的总次数为1440002,即 2.0736e+010次,将近21亿次,如果在一台普通PC机上 运行这个程序,将需要几十个小时,等待结果的时间将是非 常漫长的。因此必须考虑将{or循环转化为矩阵运算。下 面以具体实例分析。 实例:计算一个数据频率为10Hz,数据持续时间为4h 的北斗卫星导航系统定位数据的Allan方差。该样本数据 点总数为1440002,即2.0736e+010。
Origin为行数组。存储北斗卫星导航系统定位纬度数据,通过rep一 “mt命令构建初级预备矩阵
for kk=l:len
R—FOG(kk,。circshift(R—FOG(kk。:).E0—1*kk+1]); end;%%%通过对R FOG进行逐行移位运算。构建群数组 的预备矩阵
for m=2:length(count_sample)
a
Matl.ab.but matrix
pro-
computation needs more memory.Several ways
extend memory space are discussed via
computation example・and it verifies that less
cessing time is ueeded if more memory is allocated to data matrix in the data processing algorithm. ‰V Words MatLab,massive da协,space,time,matrix computation,memory
kind of software for science computation wlanufactured by Mathworks Inc.Loop commands often happens that
are
usually used
during data processing.and
tO
it
processing duration is
1)构建群数组∞群数组中每个数组中数据持续时间
为0.1×女,女一1,2,…,1.0368e+010,这样的群数组共有 1.0368e+010个: 2)计算群数组中每个数组的均值,以均值为数组元 素,构建新的数组(n,),数组元素个数为2.0736e+010一k
+1;
3)对{吗}进行二次微分,得到新数组为{西}。{岛}元素 个数为2.0736e+010一女一1;
FOG—Primary—Arห้องสมุดไป่ตู้ay(1:len—m+1,:)=R—FOG(1:I∞一m+ l,1:m)1%%%构建群数组
end;
显然,算法经过改进后,取消了嵌套{or循环,for循环 的次数减少近144000倍。但是,另外一个问题出现了,即 如何创建144000x 144000的矩阵。记144000×144000的 矩阵为{M,}。如果A毛为双精度数据,则创建这么一个矩 阵占用的空间为:2.0736e+010×8个字节.大约需要168G 的连续存储空间.郎在内存中需要开辟约168G的存储空间
的矩阵维数为sqrt(2”~1);计算机分配给MatLab的内存
空间可以通过在命令行中运行memory查看,memory命令 运行结果显示的是MatlJab能够利用的最大的内存空间,
MatLab数值数据类型与最大矩阵维数
MatLab数值数据类型包括:无符号整型(uint8),有符
由于MatLab在创建矩阵时所有的元素是放置在一片连续
用的字节一矩阵占用的内存空间。总的来说.64位的Mat—
Lab能够创建的最大矩阵维数比32位的MatLab要大,
MatLab能够利用的连续存储空间越大,则能创建的最大矩
阵维数也越大。矩阵中元素所占字节越少,则能创建的最大
-收穑日期:2011年11月10日,修回日期:2011年12月20日 基金项目:海军大连舰艇学院科研发展基金资助。 作者简介:周红进,男,搏士,讲师,研究方向:惯性导航技术及卫星导航技术应用。王秀森。男。硬士,副教授,研究方向:导航仪器智能 化。
总第271期 2012年第5期
计算机与数字工程
Computer&Digital Engineering
VoL 40 N0.5
89
基于MatLab的海量数据处理方法。
周红进王秀森
(海军大连舰艇学院航海系大连116018)
摘要MatLab是MathWorks公司推出的一种科学计算软件,在使用MatLab进行数据处理过程中,常常会用到循环语句逐点处理 数据.当数据量巨大时。经常会出现耗时长久的情况。将循环运算转换为矩阵运算,充分利用MatImb高效率的矩阵运算特点。可以缩短数 据处理时间。通过一个算例分析了创建大容量矩阵的方法:如扩大内存空间、采用短字节数值数据类型等。算例运行结果表明,通过分配更 多的内存空间进行大容量矩阵运算,可以显著缩短数据处理的时间,从而实现空间换时间的目的。 关键词MatLab;海量数据;空间;时问;矩阵运算;内存 中围分类号TP39l
2.53GHz,内存为2G的普通PC机上实际运行发现,耗时
20个小时以上。因此必须重新设计算法。 这个算例中,外层{or循环无法采用矩阵运算替代,只 能考虑将内层for循环采用矩阵运算替代。其方法是一次 性构建预备数组,即将144000个数据点存为一个行数组, 使用repmat命令构建一个144000×144000的矩阵,然后 利用for循环使用drcshift命令对构建的矩阵进行数据移 位,这样做的耳的是为了构建群数组不再通过嵌套for循 环实现,而是直接通过矩阵运算实现。具体命令如下: RFOG=repmat(R—FOG—Origin,[1en,1])}%%%R—FOG—
用于创建矩阵{M,},当前普通PC机根本无法满足这个要
求,即使内存空间能够满足,32位的MatLab也无法表示这 个矩阵。因此首先必须安装64位的MatLab,然后考虑解 决存储空间的问题。通过两个途径解决存储空间的问题: 1)在数据精度满足计算要求的情况下改变数据类型。 实际上一般的数据运算精度不需要双精度。单精度数据即 可以满足要求。采用单精度数据类型,需要的存储空间约 为84G,还是不够。通过分析北斗卫星导航系统定位纬度 数据,由于采集的是静止状态下的纬度数据,纬度整数部分 不变,小数部分数据绝对值小于1,小数点j舌数据为4位,于 是将角速度数据放大10000倍,将数据变为整型数据,2个 字节即可以表示,这样就只需要42G的存储空间。但还不
为Matrix Laboratory,尤其擅长进行矩阵运算口“]。也就
是说在使用MatLab进行科学计算时.MatLab进行矩阵运
节为实部和虚部占用字节之和,矗、一inf、NaN占用1个字
节。
算的效率最高。利用MatLab处理数据时。常常需要对每
一个数据点进行同样的运算,一般情况下都会直接使用循 环运算,这样做的优点是数据处理算法实现直接明了。当 数据量很大时.则会耗时长久,有时甚至达到几十个小时, 即使采用运算频率更高的CPU,耗时也不会有显著改