之前我一般是把sqlite的数据导出到excel里面,然后把数据复制到matlab里面再跑算法的。

感觉有点低效,所以最近两天安装了一个sqlite驱动,用matlab打开db文件,读出数据之后直接跑算法。

%% main.m

%% 数据初始化

clear

close all

%获取数据库中的表名

len = input('单个位置采样点数为len: \ne.g.200\n');%单个位置采样点数为len

fileFolder=fullfile(pwd);

dirOutput=dir(fullfile(fileFolder,'*.db'));

fileNames={dirOutput.name}'

dbName = input('请输入db文件的代号: \ne.g.1\n');

dbName = fileNames(dbName)

dbName = strcat(strcat(pwd,'/'),dbName);

dbName = strrep(dbName,'\','/');

dbName = char(dbName);

tablename = fromdbNameGetTableName(dbName);

[m,n]=size(tablename);

len = 200

result = [];

for i=1:m

SingleAPData = [];

for j = 1:8

%先处理db文件转化为矩阵datalevel和r

datalevel = yy_db(dbName,tablename(i,:),j);

SingleAPData = [SingleAPData;datalevel];

end

SingleAPData = SingleAPData';

result = [result;ProcessSingleAP( SingleAPData,i,0.9 )];

end

%% fromdbNameGetTableName.m

%这是数据库获取表单的函数

%dbname 数据库文件名称

function tablename = fromdbNameGetTableName(dbName)

%连接数据库

conn = database(dbName,'yy','','org.sqlite.JDBC',strcat('jdbc:sqlite:',dbName));

ping(conn);

xs=exec(conn,'SELECT name FROM sqlite_master WHERE type=''table'' ORDER BY name');

xs=fetch(xs);

x=xs.Data;

tablename = cell2mat(x(3:end,1));

%% yy_db.m数据库操作都在这里了

%这是数据库数据处理函数

%将数据库中的对应数据转换为行向量datalevel,R

%dbname 数据库文件名称

%tablename 数据表的名称

%row 对应datalevel数据在第几列

%Length 对应单个位置采样点数长度

function [datalevel] = yy_db(dbName,tablename,row)

%连接数据库

conn = database(dbName,'yy','','org.sqlite.JDBC',strcat('jdbc:sqlite:',dbName));

ping(conn);

users = exec(conn,['select * from ',tablename]);

users=fetch(users);

user=users.Data;

%获取Level以及r

if row == 1

datalevel=transpose(cell2mat(user(:,row)));

else

datalevel=transpose(str2num(char(user(:,row))));

end

end

%% GetNumfromAllSameMetre

function [ num,ind ] = GetNumfromAllSameMetre( AP_mat,metre )

%UNTITLED2 此处显示有关此函数的摘要

% 此处显示详细说明

ind = find (AP_mat(:,2)==metre);

num = length(ind);

end

%% ProcessSingleAP

function Mean = ProcessSingleAP( AP,APnum,yuzhi )

%UNTITLED5 此处显示有关此函数的摘要

% 此处显示详细说明

Mean = [];

need_list = [0.5,1,3,5,7,9,11,13];

for i = 1:length(need_list)

ind = find(AP(:,2) == need_list(i));

tempdata = AP(ind,APnum+2);

if length(tempdata) == 0

Mean = [Mean,0];

else

Mean = [Mean,GetMeanfromFrequency(tempdata,yuzhi)];

end

end

end

%% GetMeanfromFrequency

function [ Mean ] = GetMeanfromFrequency( raw_data,yuzhi )

%UNTITLED4 此处显示有关此函数的摘要

% 此处显示详细说明

Mean = 0;

table = tabulate(raw_data);

temp_table = table;

gailv = 0;

yuzhi = yuzhi*100;

while gailv < yuzhi

[val,ind] = max(temp_table(:,3));

gailv = gailv + val;

Mean = temp_table(ind,1)*val/yuzhi + Mean;

temp_table(ind,:) = [];

end

end

matlab db(X R),matlab操作sqlite数据库相关推荐

  1. python数据库操作sqlite_Python3操作SQLite数据库

    Python3操作SQLite数据库 SQLite SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目 ...

  2. android查询mysql并显示_Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解...

    本文实例讲述了Android操作SQLite数据库(增.删.改.查.分页等)及ListView显示数据的方法.分享给大家供大家参考,具体如下: 由于刚接触android开发,故此想把学到的基础知识记录 ...

  3. js -- 操作sqlite数据库

    最近看到一个使用js来操作sqlite数据库的,测试了一下,具体使用的是 js操作类: https://github.com/kripken/sql.js/(sqlite js 驱动) 异步请求:ht ...

  4. python读数据库的通信协议是,Python操作SQLite数据库过程解析

    SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统. 不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协 ...

  5. sqlite mysql php_PHP实现的简单操作SQLite数据库类与用法示例

    本文实例讲述了PHP实现的简单操作SQLite数据库类与用法.分享给大家供大家参考,具体如下: SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已 ...

  6. PC软件开发技术之三:C#操作SQLite数据库

    我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式.但是对于一些小型的应用,如一些移动APP,通常的数据库过于庞大,而轻便的SQLite则能解决这一问 ...

  7. python数据库sqlite3_Python 操作 SQLite 数据库

    本文字数:3808 字 阅读本文大概需要:10 分钟 写在之前 SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务.零配置.我们在之前讲过的两个数据库,不管是 MySQL 还是 ...

  8. Linux C语言操作SQLite数据库

    1. SQLite数据库特点 (1)SQLite数据库是开源的嵌入式数据库,无需独立的数据库引擎,直接嵌入到应用程序进程中,因此,通过API,应用程序可以直接操作它. (2)事务的处理是原子的,一致的 ...

  9. C#操作SQLite数据库

    我们在开发应用是经常会需要用到一些数据的存储,存储的方式有多种,使用数据库是一种比较受大家欢迎的方式.但是对于一些小型的应用,如一些移动APP,通常的数据库过于庞大,而轻便的SQLite则能解决这一问 ...

最新文章

  1. linux下kill命令小结
  2. 对Spring事务一些问题的讨论
  3. 学习进度条(第十五周)
  4. sphinx随笔记了一下
  5. C#仿QQ皮肤-常用用户控件EnterFrom1和窗体EntryForm的实现
  6. Android 的网络编程
  7. html扫雷源码js,js实现扫雷源代码.pdf
  8. 二阶魔方万能还原公式_魔方小站二阶魔方速拧《2阶魔方公式 视频教程》
  9. 数字共享平台赋能船舶行业数字化转型——CSBC,搭建行业数字生态链
  10. 计算机设备属于什么会计科目,​机器设备属于什么会计科目
  11. visio2019画思维导图
  12. php卡片猜数字游戏二进制,卡片猜数字游戏二进制码
  13. html5手机上签名,h5实现电子签名
  14. linux 开发工具集合
  15. 短信防火墙使用教程(短信防轰炸、防盗刷)
  16. CSS--margin塌陷问题
  17. python制表符什么意思_【后端开发】python中制表符是什么意思
  18. 企业要求的J2EE详解
  19. 【Java网络编程与IO流】Http协议详解以及面试有关问题
  20. Python+Selenium自动化脚本实现列表信息的多列内容获取

热门文章

  1. userdel删除用户失败提示:userdel: user * is currently logged in 解决方法
  2. 关于java.sql.SQLRecoverableException: Closed Connection异常的解决方案(转)
  3. 将JavaScript函数作为参数传递
  4. 电脑c盘满了怎么清理
  5. 七牛云存储,图片储存
  6. matlab pdm转pcm_STM32F407 PDM转PCM问题
  7. Node爬虫,爬取传播客新闻列表
  8. TypeScript学习(一):原始数据类型的定义
  9. C++动态内存管理好难怎么办?零基础图文讲解,小白轻松理解原理
  10. mpvue中小程序自定义导航组件开发指南