一、使用Windows系统自带的数据源工具创建基于Access的数据库。具体步骤是:控制面板--》管理工具--》数据源(ODBC)---》用户DSN--》添加。创建数据源SampleDB。
二、在Matlab中连接ODBC数据源:可以使用database工具箱或者代码编程的方式,下面介绍编程的方式
1、连接数据库:
conn=database( 'SampleDB' , '' , '' )
2、测试数据库是否连接成功
ping(conn)
3、打开游标,并把执行SQL语句
cursor = exec(conn,'select from PeopleInfo')
4、读取数据,可以从游标中读取,也可直接读取
result=fetch(cursor)
5、关闭游标和链接
close(cursor)
close(conn)
备注:上面是采用cursorfetch的方式,也可采用databasefetch的方式
conn=database()
result=fetch(conn, sqlquery)
而cursorfetch 的编码方式是:
conn=database()
curs=exec(conn, sqlquery)
curs=fetch(curs)
result = cursData
[FileName,PathName] = uigetfile('dat', 'Select all the dat-files ', 'MultiSelect', 'on'); %%选择所有dat文档,必须是所有!
for ii = 1:cc
filepath{1,ii} = fullfile(PathName, FileName{ii});
end
fid = fopen(filepath{1,1},'r');
然后用fscanf读取。
要详细一点的话得把dat文档贴上来,不然不好写
你想读哪些数据??
其实matlab读取txt文件是最快的,而且你的数据非常整齐,加起来一共是100行100列,非常整齐的数据,所以你把这些数据弄到一个txt文件里,如名为“11111txt”。
在主程序下编写下面的程序:
infilename=input(文件名:,"s") %%%文件须在matlab\work路径下
注意:输入文件名的时候一定要输入扩展名(txt)
infile=load(infilename); %%数据已经非常完整的存到了数组infile
你需要哪一列,或哪一行,直接提取就可以了!!
你可以直接在m文件里面用xlswrite函数:(filename/sheet/range都是要加单引号滴)
xlswrite(filename,
M);将矩阵M的数据写入名为filename的Excel文件中。
xlswrite(filename,
M,
sheet);将矩阵M的数据写入文件名为filename中的指定的sheet中。
xlswrite(filename,
M,
range);将矩阵M中的数据写入文件名为filename的Excel文件中,且由range制定存储的区域,例如'C1:C2'
xlswrite(filename,
M,
sheet,
range)
;在上一条命令的基础上指定了所要存储的sheet。
status
=
xlswrite(filename,
)
;返回完成状态值。如果写入成功,则status为1;反之写入失败,则status为0
[status,
message]
=
xlswrite(filename,
);返回由于写入 *** 作而产生的任何错误或警告信息
应用举例
例一:将数据写入默认的工作表中
将一七元素向量写入testdataxls中。默认格式下,数据将写入文件中第一个工作表的A1至G1单元格。
xlswrite('testdataxls',
[127
502
-98
639
0
-2
56])
例二:将混合数据写入制定工作表中
d
=
{'Time',
'Temp';
12
98;
13
99;
14
97};
s
=
xlswrite('tempdataxls',
d,
'Temperatures',
'E1')
s
=
1
Time
Temp
12
98
13
99
14
97
例三:向文件中添加新的工作表
现将上例中的数据写入tempdataxls中并不存在的一个工作表中,在这种情况下,xlswrite会添加一个新的工作表,名称由用户指定,此时xlswrite会显示警告提示添加了新的工作表。xlswrite('tempdataxls',
d,
'NewTemp',
'E1')
Warning:
Added
specified
worksheet
如果不想看到这些警告,可以输入下列命令。
warning
off
MATLAB:xlswrite:AddSheet
再一次输入写入命令,这次创建另外一个新的工作表NewTemp2,此时不再显示提示信息,但仍可以用msg命令提取该信息。
[stat
msg]
=
xlswrite('tempdataxls',
d,
'NewTemp2',
'E1');
msg
msg
=
message:
'Added
specified
worksheet'
identifier:
'MATLAB:xlswrite:AddSheet'
book
方法/步骤
获取第一层文件夹下的所有文件夹以及数据信息结构体。
例如:主路径是SourcePath
可以通过相对路径代码cd(SourcePath);File1NameFormation=dir('')获取当前路径下所有文件夹信息并且将文件夹信息保存在File1NameFormation中。也可以使用绝对路径:File1NameFormation=dir('SourcePath\');对于需要列出什么类型的文件可以通过将''改成'xxx';其中XXX为类型文件扩展名
对路径扩展进行计数,循环进行分文件夹读取
File1Number=numel(File1NameFormation);或者File1Number=size(File1NameFormation,1);通过获取当前文件夹中有多少层文件夹。
对得到的文件夹通过计数进行循环,进入次文件夹一次继续读取文件。
但是这里需要注意的是,如果是文件夹需要从第三个文件夹读取,因为''和''一个为当前文件夹一个为上一层文件夹,所以需要从第三个文件读取,可以通过第二个返回上一层文件夹。
可以发现进入子文件后就进入循环了,返回了第一步。在这里可以整合所有的代码
cd(SourcePath)
File1NameFormation=dir('');
File1Number=numel(File1NameFormation)
for LoopFile1Number=3:File1Number
NowPath=fullfile(SourcePath,File1NameFormation(LoopFile1Number)name
end
回顾整个过程,重复写的代码很多,在这里我们可以通过运用递归的思维写一个读取数据代码。
这里通过循环来写读取文件函数。
function ReadFile(MainPath,FileType,FileLayer)
%%%%%%%%%%%%%%
%MainPath为主路径,FileType为需要读取的文件类型,FileLayer为文件类型在哪一层文件下
cd(MainPath);
if(FileLay>=0)
PathFileFormation=dir('');
PathNumber=numel(PathFileFormation);
for LoopPathNumer=3:PathNumber
Path=fullfile(MainPath,PathFileFormation(LoopPathNumber)name);
ReadFile(Path,FileType,FileLayer-1)
end
else
PathFileFormation=dir('FileType');
PathNumber=numel(PathFileFormation);
for LoopPathNumer=3:PathNumber
Path=fullfile(MainPath,PathFileFormation(LoopPathNumber)name)
end
end
常用的通用分布函数如下:
1) pdf:用于生成各类概率分布的PDF
2) cdf:用于生成各类概率分布的CDF
3) icdf:用于生成各类概率分布的inverse CDF
4) random:用于生成各类概率分布的随机数
5) fitdist:用于生成各类概率分布拟合给定随机数据的统计参数(如均值、方差)
常用的专用分布函数如下:(表示通配符,用于指定特定分布)
1) pdf:生成特定的概率分布的PDF
以上就是关于matlab怎么连接数据库全部的内容,包括:matlab怎么连接数据库、matlab读取多个数据文件、如何用matlab读大量数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)