MATLAB与C读书笔记

时间:2019-05-13 09:31:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《MATLAB与C读书笔记》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《MATLAB与C读书笔记》。

第一篇:MATLAB与C读书笔记

基于C进行dSPACE仿真的技术路线

dSPACE关联于MATLAB的Simulink,由Simulink提供计算模块,dSPACE提供Realtime Interface(RTI)的形式模块化输入输出端口。MATLAB基于Simulink的Realtime Workshop编译生成目标机器可执行代码,并下载到dSPACE中执行。

C与MATLAB联系密切,MATLAB提供了多种利用C实现高效、快速运算编程的方法,并能实现针对不同平台的可执行代码生成和优化。不断升级完善的Realtime Workshop以及Realtime Workshop Embedded Coder保证了C代码可以稍作修改即直接载入处理器执行运算,并且得到了DO178B、IEC61508认证,在航空航天和国防领域有广泛应用。配合Simulink的Model Advisor检查模型代码,使模型易于改进。MATLAB提供的Model Reference可以将模块独立处理,采用增进式代码修改,适合于大型系统的模块化设计。

本文需要探讨的问题是如何利用大量已有的C文件进行dSPACE仿真。因此,将首先介绍MATLAB中与C有关的External Interfaces和S-Function,然后再根据这些介绍寻找较为简捷的实现方案。

1、External Interfaces

提供MATLAB与外部程序和设备进行输入输出通讯的接口。

1)Mat文件

MATLAB的数据文件即Mat文件,它可以实现数据在平台之间的转移或外部程序与MATLAB的数据传递。MATLAB提供了一些前缀为mat的函数,可以在C中直接调用。通过专用的API编译,Window环境下为matlabroot bin win32 mexopts *engmatopts.bat,编译在cmd窗口执行。

2)共享库(Shared Libraries)

Windows环境下共享库是动态链接文件,后缀为.dll,用C等编写,在MATLAB中调用。利用loadlibrary()和unloadlibrary分别完成动态链接文件的装载和卸载,装载完成后可以使用calllib()函数在MATLAB中调用动态库中函数。

3)Mex文件

Mex是MATALAB Eexcutable的缩写,类似于共享库,Mex文件可以在MATLAB命令行中直接调用。Mex主要应用于

A、直接使用已经编写的C程序,而不需重新编写m文件;

B、对运算性能要求较高的应用场合。

MATLAB有四种Mex文件:

1、源Mex文件,用C书写的代码;

2、二进制Mex文件,MATLAB中执行的动态链接进程;

3、Mex函数库,即能够在MATLAB中使用的API库;

4、Mex编译脚本,将源Mex文件转换成二进制Mex文件的MATLAB函数。

源Mex文件中,需要将原C文件中的main改写成需要使用的函数名,源Mex文件一般包括三个部分:gateway进程、计算进程和处理器宏。计算进程即编写的计算函数,其后,要按规定格式编写用于建立gateway进程的mxfunction,主要是变量传递和解释,需调用mex.h文件。编译采用mex functionname.c的命令形式,编译后的函数可以像众多MATLAB内建函数一样直接调用。

2、MATLAB S-Function

在MATLAB中可以用m文件、C、C++、Ada和Fortran等编写Simulink模块,其中C、C++、Ada和Fortran编写的S-Function以Mex文件的形式进行编译。

以m文件编写的S-Function有Level1和Level2之分,其中Level2可以调用更加丰富的S-Function的API资源,并且支持代码生成(手动书写,适合于dSPACE与RTI)。

以C Mex形式编写的S-Function具有最大的灵活性和功能性,支持面向应用对象编译(Target Language Compiler TLC)的代码生成,该代码自动生成,不需要手动添加编译文件,可以将算法写成C Mex的形式,也可以构建一个wrapper S-Function去调用C/C++/Fortran代码。MATLAB提供了编写C Mex S-Function的模板文件sfuntmpl_doc.c和用户界面S-Function Builder。

MATALB还提供一个Legacy Code Tool(继承代码工具?)用于创建能够调用C和C++的S-Function,同样支持TLC,但能够利用的API有限,适用于仅计算输出而不计算状态的Legacy Code。

需要注意的是,C Mex S-Function不支持总线输入输出,对模型参考也不完全支持;S-Function Builder则不支持总线输入输出、向量、多速率采样、输入输出数量变化等。除上述以代码区分S-Function类型外,S-Function也可以分为Noninlined和Wrapper and Fully Inlined两种。前者即C Mex S-Function,dSPACE提供的应用说明Implementation Guide主要是针对C Mex S-Function。后者是基于TLC代码生成,多个文件相互独立。

1)使用已有的C文件构建S-Function

对已经存在的C程序文件,在Simulink中有3种方法:

A、Wrapper S-Function。

手写C S-Function和TLC文件,要求对S-Function的深入了解。

在Wrapper函数同一般的S-Function一样,主要有mdlInitializeSizes()、mdlInitializeSampleTimes()、mdlOutputs()、mdlTerminate()等方法,其中在mdlOutputs()方法中调用已经编写好的C程序,该C程序按照标准C书写。

完成Wrapper函数的编写后,在MATLAB命令窗口运行mex命令编译即可。

此外还需要编写TLC文件才能生成RTW代码,TLC文件基于m编写,基本的函数有BlockTypeSetup和Outputs。Wrapper和TLC文件都可以参考MATLAB提供的模板进行编辑。

B、S-Function Builder。

通过GUI界面编辑,自动生成S-Function和TLC文件,不强调对S-Function的熟练掌握。需要创建声明已有C文件的库函数,并在Builder面板的Libraries中指定对应的C文件和需引用的库文件。此外需要调整初始化、输入和输出等一些参数。完成配置后,点击Build按钮即生成S-Function、Wrapper和TLC三个文件。

C、the Legacy Code Tool。

通过命令在MATLAB Workspace中定义S-Function,无需掌握S-Function的知识。其基本命令如下:

def = legacy_code('initialize');

def.SourceFiles = {'doubleIt.c'};//源C文件

def.HeaderFiles = {'doubleIt.h'};//库文件

def.SFunctionName = 'legacy_wrapsfcn';//S-Function名称 def.OutputFcnSpec = 'double y1 = doubleIt(double u1)';def.SampleTime = [-1,0];

legacy_code('sfcn_cmex_generate', def);

legacy_code('compile', def);

legacy_code('sfcn_tlc_generate', def);

通过the Legacy Code Tool与通过S-Function Builder生成的S-Function不同:Builder生成的结果中,已有的C文件被wrapper函数调用,而Legacy Code Tool则直接调用已有的C文件;通过Builder面板可以定义S-Function的输入输出变量名称,而Legacy Code Tool中仅取默认的y和u。

2)使用C编写S-Function

S-Function的基本结构是:

#define//函数名

#include//函数头

mdl*()//调用API方法

#ifdef…endif//尾部声明

S-Function的API方法均已mdl开头,如mdlInitializeSizes()。编写好的S-Function使用mex命令进行编译。

3、结论

综合上述介绍,比较简单的使用已有C文件进行dSPACE仿真的技术路线有以下3种:

1).C文件→Mex编译脚本mexfunction→二进制Mex文件(.mexw32)→Simulink S-Function模块。

2).C文件→the Legacy Code Tool→C S-Function和TLC文件→.mexw32文件→Simulink S-Function模块。

3).C文件→S-Function Builder→.mexw32文件→Simulink S-Function模块。

其中,the Legacy Code Tool允许Simulink直接调用C代码,比C S-Function易用。当然,C S-Function更加灵活,功能更加丰富。

对于只计算输出的函数,可以直接利用the Legacy Code Tool。而对于需要计算微分方程的函数,则不能简单的直接利用原有的C文件,需要考虑是单独编译微分方程数值计算方法,还是使用MATLAB自身的ODE方法。

需要注意的是,dSPACE不支持M/C++/Fortran/Ada编写的S-Function,因此已有的C文件必须用C编写。

第二篇:c语言读书笔记

C语言读书笔记

——读《C程序设计》笔记

一学期对《c语言程序与设计》的学习与应用使我对c语言产生了浓厚的兴趣。C语言程序与设计是一门实践性很强的课程,不可能只靠听课和看书就掌握c语言程序与设计,因此必须十分重视动手编写程序和上机运行程序能力的培养。所以我自己在课后学习了《C程序设计》中的“结构体”部分,以下为在学习过程中所做的笔记。

一、结构体;

结构体概述:

结构是一种“构造”而成的数据类型,在说明和使用之前必须先定义它,也就是构造它。

定义一个结构的一般形式为:

struct 结构名

{成员表列};

成员表列由若干个成员组成,每个成员都是该结构的一个组成成分。对每个成员也必须进行类型说明,其形式为:

类型说明符 成员名;

结构名和成员名应该符合标识符的书写规定。

结构体变量的定义

1)先定义结构体,再说明结构变量。

2)在定义结构体类型的同时定义结构变量。

3)直接说明结构变量。

结构体变量的引用

定义结构体型变量的目的就是为了在后续程序中引用它。

注意:结构体型变量是一种聚合性变量,可引用的对象有两个:变量名代表变量的整体,成员名代表变量的各个成员,两者均可在程序中引用。但应遵守以下规则:

1)不能将一个结构体变量作为一个整体进行输入和输出。

2)如果成员本身又属于一个结构类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员。只能对最低级的成员进行赋值或存取运算。

3)对成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。结构体变量的初始化

像数组一样,能够以值列表的方式为结构体的各个分量数据进行初始化。初始化时,将所提供的数据按照各分量的顺序排列,如果结构分量仍是结构,则按最低层类型提供数据。另外,还可以通过分别赋值的方式为结构变量的各个分量赋值。

二、结构体数组

数组的元素也可以是结构体类型的,因此可以构成结构体数组。结构体数组的每一个元素都是具有相同结构体类型的下标结构体变量。在实际应用中,经常用结构体数组来表示具有相同数据结构体的一个群体。

方法和结构变量相似,只需说明它为数组类型。

三、结构体类型指针

 指向结构体变量的指针

结构指针变量说明的一般形式为:

Struct 结构名 *结构指针变量名

赋值是把结构变量的首地址赋予该指针变量,不能把结构名赋予该指针变量,而只能将结构体变量赋予该指针变量。

表示结构成员的三种等效形式:

1)结构变量.成员名

2)(*结构指针变量).成员名

3)结构指针变量->成员名

 指向结构体数组的指针

指针变量可以指向一个结构数组,这时结构指针变量的值是整个结构数组的首地址。结构指针变量也可以指向结构数组的一个元素,这时结构指针变量的值是该结构数组元素的首地址。

注意,一个结构指针变量虽然可以用来访问结构变量或结构数组元素的成员,但是,不能使它指向一个成员。也就是说,不允许取一个成员的地址来赋予它。

结构指针作为函数参数

用结构变量作为函数参数进行整体传送的最好的办法就是使用指针,这时,由实参传向形参的只是地址,从而减小了时间和空间的开销。

四、动态内存分配

 动态存储分配函数

为了处理动态数据结构,必须在程序的执行过程中动态的分配内存。

1)分配内存空间函数malloc

调用时的一般形式:

(类型说明符*)malloc(size)

2)分配内存空间函数calloc()

调用时的一般形式:

(类型说明符*)calloc(n,size)

说明:在内存动态存储区中分配n块长度为“size”字节的连续区域。函数的返回值为该区域的首地址,其中(类型说明符*)用于强制类型转换。

3)释放内存空间函数free()

调用时的一般形式:

Free(void *ptr);

说明:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,它指向被释放区域的首地址,被释放区应是由malloc()或calloc()函数所分配的区域。

五、注意问题:

① 结构体名和结构体变量时两个不同的概念,不能混淆。结构体名只能表示一个结构形式,编译系统并不对它分配内存空间。只有当某变量被说明为这种类型的结构时,才能对该变量分配存储空间。

② 结构指针变量能更方便的访问结构变量的各个成员,其访问一般形式为:

(*结构指针变量名).成员名或者为结构指针变量→成员名

③ 字节对齐的问题,一般为4,具体依编译器而定。

1一个占N 个字节的变量,存储在首地址偏移量为N的n倍的地址上、2结构体变量占的总内存大小等于它的成员的数据类型最大的n倍

第三篇:c语言读书笔记

Vc++读后感

闲来无事,跑来图书馆,突然被一本名叫《致程序员之家论坛的所有会员》的书把我的注意力吸引过去了,于是我用心的读起来了。下面这些是我做的一些笔记。

应该掌握程序运行的原理与机制:学习VC++6.0 在WINDOWS下编程,就应该了解WINDOWS消息机制。(关于消息机制不用太深入,新手学习一个大概流程就可以了)

掌握编程的思想:这点就比较难了,C++的编程就是面向对象,对象的概念一定要清楚。这点重要是多练习自己动手做做小程序。

多动脑,多动手,再加上十分的仔细:关于这点就是一个学习态度的问题了。勤劳和懒惰都是人天生都有的本性,就看我们选择那一个了。

在编写一个程序的时候,要知道为什么要去编它,在程序中的函数为什么这么调用,这个程序的内存模型是怎样的?可以这样说:我们做任何事前都要有目标,有目标才能前进,函数流程就是一个程序的生命,就像人们血液流动的过程一样,从心脏出发经过各个脏器,我们要了解的就是经过那一些,那一些是主要的脏器,这些脏器是用来干什么的。最终回到那里去。内存模型蛮专业化的词,不过不用怕,就是数据在内存客中排列的顺序结构,谁在前面谁在后面了解就可以了。

程序语言的学习,是一个循序渐进的过程,切忌急功近利

这一点我认为最重要,我们往往想静心学习一点东西都不是很容易,总是想一口气吃成个大胖子,这种心态,去学习任何事情都不会成功的,笔者自己也是一样,经常想马上就学会,最后是什么也学不会。只能一步一步来,天才少,努力的人才多。切忌急功近利。

我们往往会因为不知从何入手而不知不觉中走了弯路,停留于表面,你越是着急,反而越容易走弯路,越是搞不懂,就越是需要我们的耐心,不过我也知道这个说说容易做做难,我的方法是,烦的时候回到原点想想你为什么学习编程,也许会对你好一点。每一个人的情况不同,所以要找对自己最有效果的。

你所得到的答案,经常是最终的答案,而不是中间过程。

这一点也很懂要,我们经常在论坛上要结果的人,结果给我们也没有用,我们要的是过程,只有我们了解了过程才能写出自己的结果。要不我们就永远没有结果。

每个人学习的情况都是不一样的,所以遇到的问题也是不尽相同,但我们都应该首先尝试自己是否能够解决这个问题。我们不要有问题就想到别人,我们要想自己想想可不可以解决,我说的想不是说只想了一次就算数了,我的想是你一个问题要想好几次,从不同路角度来看问题,有时候会有突破的,不过一看到难的就去求别人,那是没用的。

看完这本书,我受益匪浅,这告诉我们做学问就不应该只停留着一本书上,而是多去翻阅一些相类似的书,多扩展一下自己的知识面。

第四篇:Matlab 与线性代数教案

Matlab 与线性代数

一、Matlab 入门:

1.启动、退出、运行: 2.窗口介绍: 3.基本符号: =:赋值符号

[ ]:数组定义符号 , 区分列 函数参数分隔符;区分行 取消运行显示 % 注释标记

: 具有多种应用功能

4.matlab的变量(区分大小写): 预定义变量: ans

pi 相关命令: format(显示格式 rat long short)

who whos clear

5.M 文件(纯文本文件,扩展名为.m)建立 修改 保存 运行

二、Matlab 与线性代数的基本运算

1.矩阵的输入

数字矩阵:A=[1 2 3;3 2 1]

或 A=[1, 2, 3;3, 2, 1] 或 A=[1 2 3 2 1]

符号矩阵(显示出来元素之间有逗号): 定义符号变量 sym syms

用法:(1).sym(‘[a,b,c;b,c,a]’)或 sym(‘[a b c;b c a]’)

(2).syms a b c

A=[a b c;b c a]

2.产生特殊矩阵的函数:

zeros(m,n)zeros(n)

ones(m,n)ones(n)eye(n)

magic(n)rand(m,n)randn(n)% 产生(0,1)区间均匀分布的随机矩阵

3.相关命令:

round(A)% 表示对矩阵A中所有元素进行四舍五入 length(A)% 返回A的长度(列数)size(A)% 返回A的尺寸,行数 列数 A(i,j)% 引用矩阵A的第i行第j列元素

4.矩阵的基本运算

(1).+-*.*

(2).转置 A’

(3).方阵的幂:A^3

5.求向量组的极大无关组

A[1,2,3 ]

(1).U=rref(A)% U为A的行最简形

(2).[U,s]=rref(A)% U为A的行最简形, s为首非零元所在列组成的向量

(3).rrefmovie(A)% 返回A的行最简形,且给出每一步化简过程

6.求线性方程组的解

情形1。Ax=b,其中A为n阶可逆阵

法1: x=inv(A)*b 或 x=A^(-1)*b

法2: U=rref([A,b])% 返回值U为矩阵的行最简形,最后一列即为解x。

情形2。Ax=0, 其中A 为m*n 矩阵,R(A)=r

法1:U=rref(A), 选定自由变量,得到一组基础解系

法2:z=null(A)

% z的列向量为Ax=0的一组标准正交基。

情形3。Ax=b, 其中A 为m*n 矩阵, 求通解

U=rref([A,b])从最后一列找特解,前n列找导出组的基础解系,然后按格式写

出Ax=b的通解。(或先写出以U为增广矩阵的同解方程组也可。)

6x13x22x33x44x554x12x2x32x43x54

例子: .4x2x3x2xx0234512xx7x3x2x112345(4).(5).(6).(7).方阵行列式 det(A)方阵的秩 rank(A)方阵的逆 inv(A)或 A^(-1)矩阵的除法 左除 右除/

AB=C

则 A=C/B B=AC 输入:A=[6 3 2 3 4;4 2 1 2 3;4 2 3 2 1;2 1 7 3 2];

b=[5 4 0 1]’;

U=rref([A,b])10得到:U001/2000010000103/417/203/22 603/20取x2,x5为自由变量,令x20,x50得Ax=b的特解*2

60

1/23/410x210分别令和得导出组的基础解系为:10,21

x50107/2013x24x5x112x3x5或:导出组Ax=0的同解方程组:,x2,x5为自由变量,分别令x47x521/23/410x21,x50和x20,x51得导出组的基础解系为:10,21。

07/2017.求矩阵的特征值与特征向量

(1).d=eig(A)% d为矩阵A的特征值构成的向量

(2).[V,D]=eig(A)% D为A 的特征值构成的对角阵,V 的列为A的单位特征向

量,与D中的特征值对应,满足:AVDV8.Schmidt 正交化方法

B=orth(A)% B的列向量为A的列空间的一组标准正交基,换句话说,B的列是

A的列向量的正交标准化,满足B*Beye(rank(A))。

9.用正交变换化二次型为标准形

先写出所给二次型的矩阵A,则A为实对称矩阵,[V,D]=eig(A)% D 为A的特征值构成的对角阵,V的列向量为A的正交单位特征

向量,次序与D的元素对应。满足VAVDVT1'1,即AVVD。

AV。

第五篇:matlab与sql总结

总结

一个星期前老师给了一个任务,要求用GUI做成一个simulink仿真界面,通过matlab与SQL的连接,然后把仿真结果存到sql里建的数据库里。从一开始什么都不懂,到现在可以用GUI做一个简单的界面,以及matlab与sql的连接,这一个星期感慨颇多,尤其是查阅相关资料的痛苦,及找到可以借鉴资料的喜悦,到最后逐渐有了一个清晰的思想。过程如下:

一首先了解GUI 1.1 GUI简介[1,2]

图形用户界面(graphical user interface,GUI)是由窗口、光标、按键、菜单、文字说明等对象(Ob-ject)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等假如科技工作者仅仅执行数据分析、解方程等工作,一般不会考虑GUI的制作。但是如果想向客户提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面是最好的选择之一。开发实际的应用程序时应该尽量保持程序的界面友好,因为程序界面是应用程序和用户进行交互的环境。在当前情况下,使用图形用户界面是最常用的方法。提供图形用户界面可使用户更方便地使用应用程序,不需要了解应用程序怎样执行各种命令,只需要了解图形界面组件的使用方法;同时,不需要了解各种命令是如何执行的,只要通过用户界面进行交互操作就可以正确执行程序。

在Matlab7.0中,图形用户界面是一种包含多种图形对象的界面,典型的图形界面包括图形显示区域、功能按钮空间以及用户自定义的功能菜单等。为了让界面实现各种功能,需要对各个图形对象进行布局和时间编程。这样,当用户激活对应的GUI对象时,就能执行相应的时间行为。最后,必须保存和发布自己创建的GUI,使得用户可以应用GUI对象。在Matlab中,所有对象都可以使用M文件进行编写。GUI也是一种Matlab对象,因此,可以使用M文件来创建GUI。使用M文件创建GUI的方法也是最基础的,使用其他方法创建GUI图形界面时,实现图形控件的各种功能时,也需要编写相应的程序代码。

除了使用M文件来创建GUI对象之外,Matlab还为用户开发图形界面提供了一个方便高效的集成开发环境:Matlab图形用户界面开发环境(matlab graphical user interface development envi-ronment)简称GUIDE,其主要是一个界面设计工具集。Matlab7.0将所有GUI所支持的用户控件都集成起来,同时提供界面外观、属性和行为响应方法的设置方法。除了可以使用GUIDE创建GUI之外,还可以将设计好的GUI界面保存为一个FIG资源文件,自动生成对应的M文件。该M文件包含了GUI初始化代码和组建界面布局的控制代码。使用GUIDE创建GUI对象执行效率高,可以交互式地进行组件布局,还能生成保存和发布GUI的对应文件。

FIG文件:该文件包含GUI图形窗口及其子对象的完全描述,包含所有相关对象的属性信息,可以调用hgsave命令或者使用M文件编辑器的File>Save命令生成该文件。FIG文件是一个二进制文件,包含系列化的图形窗口对象。所有对象的属性都是用户创建图形窗口时保存的属性。该文件最主要的功能是对象句柄的保存。

M文件:该文件包含GUI设计、控制函数及控件的回调函数,主要用来控制GUI展开时的各种特征。该文件基本上可以分为GUI初始化和回调函数2个部分,控件的回调函数根据用户与GUI的具体交互行为分别调用。应用程序M文件使用open-fig命令来显示GUI对象,但是该文件不包含用户界面设计的代码,对应代码由FIG文件保存。1.2 设计GUI步骤

简单说来,一个好的界面应遵循以下3个原则:简单性(Simplicity)、一致性(Consistency)及习常性(Familiarity)。界面制作包括界面设计和程序实现。具体制作步骤如下[3,4]: 1)分析界面所要求实现的主要功能,明确设计任务;2)在稿纸上绘出界面草图,并站在使用者的角度来审查草图;3)按构思的草图,上机制作(静态)界面,并对其进行检查;4)编写界面动态功能的程序,对功能进行逐项检查。

以上过程只是一般原则,在设计中,步骤之间也可能要交叉执行或复合执行;设计和实现过程往往不是一步到位的,可能需要反复修改,才能获得满意的界面。建议先进行界面布局编码,后进行动态交互功能的编码。

二数据库与matlab的连接

2.1 ODBC简介[5]

ODBC(开放式数据库的连接)是一种应用程序的接口(API)。这种接口提供了独立于任何的数据库管理系统编写应用程序的能力。ODBC通过ODBC驱动程序提供了对不同的数据库供应商的一组应用程序接口来给特殊的数据库管理系统(DBMS)。用户的应用程序使用这组API来调度ODBC驱动程序,然后驱动程序通过SQL语句同DBMS发生联系。DBC提供了数据库管理系统的标准接口,从而使应用人员在编程时不必关心底层的DBMS,大大提高了工作效率。2.2 32位matlab与32 位sql位数据库之间的连接 2.2.1数据库的建立

在SQL Server2008中建立数据库test,在其中建立表stock。2.2.2 SQL数据源的配置

建立ODBC数据源:控制面板->管理工具->ODBC数据源->用户DNS。点击“添加”,数据源名称可任意命名。服务器选择自己指定的。2.2.3.MATLAB连接数据库M文件的编写 1 连接数据库 代码如下

>> conn=database('test','sa','123')%test是刚刚建立的数据库名称 %sa是数据库登陆名%‘123’是数据库登陆密码 2 检验数据库连接状态

>> Ping(conn);%用于查看现在数据库连接状态 3 数据写入

>>expdata=[2001 7 12 000001 0.123432];>>fastinsert(conn,{'year','month','day','id','stock_return'},expdata);备注:

(1)Conn一个变量,是用于保存数据库连接字符窜的,conn=database('test','sa','123');只要数据库已经连接上,后面就可以直接引用。

(2)'year','month','day','id','stock_return'是数据库表格中的字段名(3)expdata=[2001 7 12 000001 0.123432]是我们要写入数据库的信息,分别对应于数据表中的各个字段。这里我们写入数据库的是number型的,因此矩阵式数字型。即:expdata=[2001 7 12 000001 0.123432]。(4)写入数据前提是已经成功连接数据库。4 数据的查询 代码:

>>curs=(conn,'select * from test.dbo.stock')%建立数据库的连接 >>curs=exec(conn,'select * from test.dbo.stock where id=1')%从test数据库,stock表格里面选择 股票代码为1的股票的所有信息 >>curs=fetch(curs)%取回数据库游标里面的数据; >>curs.data%读取游标里面的数据 5 显示查询后的信息: >>curs.data 6关闭链接对象和游标——close 当不再使用数据库的链接对象时要及时关闭,这样才能及时的释放出内存,而且每次链接后所需要的内存量是非常大的,要是不及时关闭的话对后续计算的影响将非常非常的大。close(curs)close(conna)

2.3 64位matlab与64位sql数据库之间的连接(以下为网络整理未证实)

64位Matlab无法通过ODBC接口访问SQL Server,我们可以跳出ODBC,而直接使用JDBC来访问数据库

第一步,从Microsoft.COM 下载Microsoft SQL Server JDBC Driver 3.0,下载地址可以将上述关键字扔进Google中搜索就得到了。解压缩可以得到很多文件,我们需要的是其中的sqljdbc4.jar和sqljdbc.jar这两个文件。其中后者是前者的子集,只要不出问题,直接使用前者就可以了。

第二步,在Matlab中加入jar。具体做法是找到“classpath.txt”文件,例如我的这个文件位置是 “D:Matlab2010Btoolboxlocalclasspath.txt”,在文件的最后加入sqljdbc4.jar的完整路径,例如我的是:“D:/sqljdbc30/enu/sqljdbc4.jar”,注意斜杠怎么写。

第三步,启动Matlab,启动过程中如果没有出错,那么这个JDBC Connector就可以用了。

上面三步就把JDBC Connector建好了。接下来我们就开始连接数据库。第一步,建立一个到数据库的连接。假设SQL Server地址是 192.30.1.117,端口是 1433,数据库名称是RTQ,用户名user,密码 pwd,那么用下面的语句建立一个到该数据库的连接。

conn=database('RTQ','user','pwd','com.microsoft.sqlserver.jdbc.SQLServerDriver',...'jdbc:sqlserver://192.30.1.117:1433;databaseName=RTQ');

参考文献

[1]MATLAB Application Program Interface Guide[C],TheMathworks Inc,1999 [2]王跃强、王纪龙、王云才,VB程序中实现调用MATLAB的方法[J],计算机应用,2001,vol.21,No.2 [3]刘炳文编著,精通Visual Basic 6.0中文版[M]北京:电子工业出版社,1999.7 [4]刘卫国,科学计算与MATLAB语言[M],中国铁道出版社,2000.4 [5]侯春生,陈汝义,袁爱进,乔 毅,唐明新.MATLAB/VB/SQL Server编程实现数据管理[J].微型电脑应用,Vol.18,No.7,2002

下载MATLAB与C读书笔记word格式文档
下载MATLAB与C读书笔记.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    Matlab学习心得系列——001. 先从C语言谈起

    Matlab学习系列 ——先从C语言谈起 前言 Matlab作为最强大的数学建模软件非常有必要系统的学习一下,目前我大概算是【粗略地懂些Matlab,很多语法需要现用现查】的水平,所......

    MATLAB总结与上机指南

    化工计算中常用的MATLAB命令总结 化学工程中的计算问题一般比较复杂, 其操作的数据对象通常是数组, 具体计算涉及到插值、求积分、参数拟合、解常微分和偏微分微分方程、解......

    信号与系统 MATLAB实验报告

    院系: 年级: 姓名: 实验时间: 实验地点: MATLAB实验报告 专业:班号: 学号:1 《信号与系统》实验一 连续时间信号的表示及可视化 实验题目: f(t)(t);f(t)(t);f(t)eat(分别取a0及a0); f(t)......

    MATLAB与控制系统仿真实验报告

    《MATLAB与控制系统仿真》 实验报告 2013- 2014学年 第 1 学期 专业: 班级: 学号: 姓名: 实验三 MATLAB图形系统 一、实验目的: 1.掌握绘制二维图形的常用函数。 2.掌握绘制三维......

    Matlab与Simulink仿真学习心得

    Matlab与Simulink仿真学习心得 班级:07610 学号:072016 姓名:吕天雄 一 Matlab学习心得体会与编程实践 学习Matlab的心得体会 真正开始接触Matlab是大二上就开始了,到现在已经一......

    matlab作业题

    第一章 MATLAB环境 1、MATLAB通用操作界面窗口包括哪些?命令窗口、历史命令窗口、当前目录窗口、工作空间窗口各有哪些功能? 答:MATLAB通用操作界面窗口包括:命令窗口、历史命令......

    Matlab心得体会

    Matlab心得体会 10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。......

    Matlab心得体会

    Matlab心得体会 10金融3 吕淼 2010241125 在为学习这门课前就听说了他的强大,因为现在的经济模型都是需要这些分析软件的,也曾听说金融的未来方向是需要数学等等作为依托的。......