欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      matlab與sql總結

      時間:2019-05-12 12:56:55下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《matlab與sql總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《matlab與sql總結》。

      第一篇:matlab與sql總結

      總結

      一個星期前老師給了一個任務,要求用GUI做成一個simulink仿真界面,通過matlab與SQL的連接,然后把仿真結果存到sql里建的數(shù)據(jù)庫里。從一開始什么都不懂,到現(xiàn)在可以用GUI做一個簡單的界面,以及matlab與sql的連接,這一個星期感慨頗多,尤其是查閱相關資料的痛苦,及找到可以借鑒資料的喜悅,到最后逐漸有了一個清晰的思想。過程如下:

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

      圖形用戶界面(graphical user interface,GUI)是由窗口、光標、按鍵、菜單、文字說明等對象(Ob-ject)構成的一個用戶界面。用戶通過一定的方法(如鼠標或鍵盤)選擇、激活這些圖形對象,使計算機產(chǎn)生某種動作或變化,比如實現(xiàn)計算、繪圖等假如科技工作者僅僅執(zhí)行數(shù)據(jù)分析、解方程等工作,一般不會考慮GUI的制作。但是如果想向客戶提供應用程序,想進行某種技術、方法的演示,想制作一個供反復使用且操作簡單的專用工具,那么圖形用戶界面是最好的選擇之一。開發(fā)實際的應用程序時應該盡量保持程序的界面友好,因為程序界面是應用程序和用戶進行交互的環(huán)境。在當前情況下,使用圖形用戶界面是最常用的方法。提供圖形用戶界面可使用戶更方便地使用應用程序,不需要了解應用程序怎樣執(zhí)行各種命令,只需要了解圖形界面組件的使用方法;同時,不需要了解各種命令是如何執(zhí)行的,只要通過用戶界面進行交互操作就可以正確執(zhí)行程序。

      在Matlab7.0中,圖形用戶界面是一種包含多種圖形對象的界面,典型的圖形界面包括圖形顯示區(qū)域、功能按鈕空間以及用戶自定義的功能菜單等。為了讓界面實現(xiàn)各種功能,需要對各個圖形對象進行布局和時間編程。這樣,當用戶激活對應的GUI對象時,就能執(zhí)行相應的時間行為。最后,必須保存和發(fā)布自己創(chuàng)建的GUI,使得用戶可以應用GUI對象。在Matlab中,所有對象都可以使用M文件進行編寫。GUI也是一種Matlab對象,因此,可以使用M文件來創(chuàng)建GUI。使用M文件創(chuàng)建GUI的方法也是最基礎的,使用其他方法創(chuàng)建GUI圖形界面時,實現(xiàn)圖形控件的各種功能時,也需要編寫相應的程序代碼。

      除了使用M文件來創(chuàng)建GUI對象之外,Matlab還為用戶開發(fā)圖形界面提供了一個方便高效的集成開發(fā)環(huán)境:Matlab圖形用戶界面開發(fā)環(huán)境(matlab graphical user interface development envi-ronment)簡稱GUIDE,其主要是一個界面設計工具集。Matlab7.0將所有GUI所支持的用戶控件都集成起來,同時提供界面外觀、屬性和行為響應方法的設置方法。除了可以使用GUIDE創(chuàng)建GUI之外,還可以將設計好的GUI界面保存為一個FIG資源文件,自動生成對應的M文件。該M文件包含了GUI初始化代碼和組建界面布局的控制代碼。使用GUIDE創(chuàng)建GUI對象執(zhí)行效率高,可以交互式地進行組件布局,還能生成保存和發(fā)布GUI的對應文件。

      FIG文件:該文件包含GUI圖形窗口及其子對象的完全描述,包含所有相關對象的屬性信息,可以調(diào)用hgsave命令或者使用M文件編輯器的File>Save命令生成該文件。FIG文件是一個二進制文件,包含系列化的圖形窗口對象。所有對象的屬性都是用戶創(chuàng)建圖形窗口時保存的屬性。該文件最主要的功能是對象句柄的保存。

      M文件:該文件包含GUI設計、控制函數(shù)及控件的回調(diào)函數(shù),主要用來控制GUI展開時的各種特征。該文件基本上可以分為GUI初始化和回調(diào)函數(shù)2個部分,控件的回調(diào)函數(shù)根據(jù)用戶與GUI的具體交互行為分別調(diào)用。應用程序M文件使用open-fig命令來顯示GUI對象,但是該文件不包含用戶界面設計的代碼,對應代碼由FIG文件保存。1.2 設計GUI步驟

      簡單說來,一個好的界面應遵循以下3個原則:簡單性(Simplicity)、一致性(Consistency)及習常性(Familiarity)。界面制作包括界面設計和程序?qū)崿F(xiàn)。具體制作步驟如下[3,4]: 1)分析界面所要求實現(xiàn)的主要功能,明確設計任務;2)在稿紙上繪出界面草圖,并站在使用者的角度來審查草圖;3)按構思的草圖,上機制作(靜態(tài))界面,并對其進行檢查;4)編寫界面動態(tài)功能的程序,對功能進行逐項檢查。

      以上過程只是一般原則,在設計中,步驟之間也可能要交叉執(zhí)行或復合執(zhí)行;設計和實現(xiàn)過程往往不是一步到位的,可能需要反復修改,才能獲得滿意的界面。建議先進行界面布局編碼,后進行動態(tài)交互功能的編碼。

      二數(shù)據(jù)庫與matlab的連接

      2.1 ODBC簡介[5]

      ODBC(開放式數(shù)據(jù)庫的連接)是一種應用程序的接口(API)。這種接口提供了獨立于任何的數(shù)據(jù)庫管理系統(tǒng)編寫應用程序的能力。ODBC通過ODBC驅(qū)動程序提供了對不同的數(shù)據(jù)庫供應商的一組應用程序接口來給特殊的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。用戶的應用程序使用這組API來調(diào)度ODBC驅(qū)動程序,然后驅(qū)動程序通過SQL語句同DBMS發(fā)生聯(lián)系。DBC提供了數(shù)據(jù)庫管理系統(tǒng)的標準接口,從而使應用人員在編程時不必關心底層的DBMS,大大提高了工作效率。2.2 32位matlab與32 位sql位數(shù)據(jù)庫之間的連接 2.2.1數(shù)據(jù)庫的建立

      在SQL Server2008中建立數(shù)據(jù)庫test,在其中建立表stock。2.2.2 SQL數(shù)據(jù)源的配置

      建立ODBC數(shù)據(jù)源:控制面板->管理工具->ODBC數(shù)據(jù)源->用戶DNS。點擊“添加”,數(shù)據(jù)源名稱可任意命名。服務器選擇自己指定的。2.2.3.MATLAB連接數(shù)據(jù)庫M文件的編寫 1 連接數(shù)據(jù)庫 代碼如下

      >> conn=database('test','sa','123')%test是剛剛建立的數(shù)據(jù)庫名稱 %sa是數(shù)據(jù)庫登陸名%‘123’是數(shù)據(jù)庫登陸密碼 2 檢驗數(shù)據(jù)庫連接狀態(tài)

      >> Ping(conn);%用于查看現(xiàn)在數(shù)據(jù)庫連接狀態(tài) 3 數(shù)據(jù)寫入

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

      (1)Conn一個變量,是用于保存數(shù)據(jù)庫連接字符竄的,conn=database('test','sa','123');只要數(shù)據(jù)庫已經(jīng)連接上,后面就可以直接引用。

      (2)'year','month','day','id','stock_return'是數(shù)據(jù)庫表格中的字段名(3)expdata=[2001 7 12 000001 0.123432]是我們要寫入數(shù)據(jù)庫的信息,分別對應于數(shù)據(jù)表中的各個字段。這里我們寫入數(shù)據(jù)庫的是number型的,因此矩陣式數(shù)字型。即:expdata=[2001 7 12 000001 0.123432]。(4)寫入數(shù)據(jù)前提是已經(jīng)成功連接數(shù)據(jù)庫。4 數(shù)據(jù)的查詢 代碼:

      >>curs=(conn,'select * from test.dbo.stock')%建立數(shù)據(jù)庫的連接 >>curs=exec(conn,'select * from test.dbo.stock where id=1')%從test數(shù)據(jù)庫,stock表格里面選擇 股票代碼為1的股票的所有信息 >>curs=fetch(curs)%取回數(shù)據(jù)庫游標里面的數(shù)據(jù); >>curs.data%讀取游標里面的數(shù)據(jù) 5 顯示查詢后的信息: >>curs.data 6關閉鏈接對象和游標——close 當不再使用數(shù)據(jù)庫的鏈接對象時要及時關閉,這樣才能及時的釋放出內(nèi)存,而且每次鏈接后所需要的內(nèi)存量是非常大的,要是不及時關閉的話對后續(xù)計算的影響將非常非常的大。close(curs)close(conna)

      2.3 64位matlab與64位sql數(shù)據(jù)庫之間的連接(以下為網(wǎng)絡整理未證實)

      64位Matlab無法通過ODBC接口訪問SQL Server,我們可以跳出ODBC,而直接使用JDBC來訪問數(shù)據(jù)庫

      第一步,從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建好了。接下來我們就開始連接數(shù)據(jù)庫。第一步,建立一個到數(shù)據(jù)庫的連接。假設SQL Server地址是 192.30.1.117,端口是 1433,數(shù)據(jù)庫名稱是RTQ,用戶名user,密碼 pwd,那么用下面的語句建立一個到該數(shù)據(jù)庫的連接。

      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程序中實現(xiàn)調(diào)用MATLAB的方法[J],計算機應用,2001,vol.21,No.2 [3]劉炳文編著,精通Visual Basic 6.0中文版[M]北京:電子工業(yè)出版社,1999.7 [4]劉衛(wèi)國,科學計算與MATLAB語言[M],中國鐵道出版社,2000.4 [5]侯春生,陳汝義,袁愛進,喬 毅,唐明新.MATLAB/VB/SQL Server編程實現(xiàn)數(shù)據(jù)管理[J].微型電腦應用,Vol.18,No.7,2002

      第二篇:SQL總結

      1.SQL語句的With cte as用法:

      with as短語,也叫做子查詢部分。即定義一個SQL片斷,該片斷會讓整個SQL語句所用到。eg:

      with

      cr as

      (select CountryRegionCode from person.CountryRegion where Name like 'C%')

      select * from person.StateProvince where CountryRegionCode in(select * from cr)

      CTE后面必須直接跟使用CTE的SQL語句(如select,insert,update等),否則,CTE將失效。CTE后面也可以跟其他的CTE,但只能使用一個with,多個CTE中間用逗號(,)分隔。eg:

      with

      cte1 as

      (select * from table1 where name like 'abc%'),cte2 as

      (select * from table2 where id > 20),cte3 as

      (select * from table3 where price < 100)

      select a.* from cte1 a, cte2 b, cte3 c where a.id = b.id and a.id = c.id

      2.case when then多條件判斷:

      CASE

      WHEN 條件1 THEN 結果1

      WHEN 條件2 THEN 結果2

      WHEN 條件3 THEN 結果3

      WHEN 條件4 THEN 結果4

      .........WHEN 條件N THEN 結果N

      ELSE 結果X

      END

      Case具有兩種格式。簡單Case函數(shù)和Case搜索函數(shù)。

      --簡單Case函數(shù)

      CASE sex

      WHEN '1' THEN '男'

      WHEN '2' THEN '女'

      ELSE '其他' END

      --Case搜索函數(shù)

      CASE WHEN sex = '1' THEN '男'

      WHEN sex = '2' THEN '女'

      ELSE '其他' END

      3.select語句前面加@轉(zhuǎn)義字符的作用是強制后面的字符串中不使用轉(zhuǎn)義字符,當作字符串

      處理。

      eg:string ss=@“aanaa”;輸出:aanaa

      string ss=“aanaa”;

      輸出:aa

      aa

      4.select getdate():從SQL SERVER返回當前的時間與日期。

      select first():函數(shù)返回指定的字段中第一個記錄的值。

      select last():函數(shù)返回指定的字段中最后一個記錄的值。

      select ucase():把字段的值轉(zhuǎn)換為大寫。

      select lcase():把字段的值轉(zhuǎn)換為小寫。

      select round():用于把數(shù)值字段設入為指定的小數(shù)位數(shù)。SELECT ROUND(column_name,decimals)FROM table_name

      column_name 必需。要舍入的字段。decimals 必需。規(guī)定要返回的小數(shù)位數(shù)。format():用于對字段的顯示進行格式化。

      SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD')as PerDate FROM Products

      5.union與union all的區(qū)別:

      對重復結果的處理,UNION ALL 會將每一筆符合條件的資料都列出來,無論資料值有無重復

      6.SELECT INTO 語句從一個表中選取數(shù)據(jù),然后把數(shù)據(jù)插入另一個表中。

      SELECT INTO 語句常用于創(chuàng)建表的備份復件或者用于對記錄進行存檔。

      將整個table1復制到table2中:

      INSERT INTO SELECT語句

      語句形式為:Insert into Table2(field1,field2,...)select value1,value2,...from Table1(要求目標表Table2必須存在,由于目標表Table2已經(jīng)存在,所以我們除了插入源表Table1的字段外,還可以插入常量。)

      SELECT INTO FROM語句

      語句形式為:SELECT value1, value2 into Table2 from Table1(要求目標表Table2不存在,因為在插入時會自動創(chuàng)建表Table2,并將Table1中指定字段數(shù)據(jù)復制到Table2中)

      7.nchar :固定長度的 Unicode 數(shù)據(jù),最大長度為 4,000 個字符。

      nvarchar:可變長度Unicode 數(shù)據(jù),其最大長度為4,000字符。

      char: 固定長度的非 Unicode 字符數(shù)據(jù),最大長度為 8,000 個字符。

      varchar:可變長度的非Unicode數(shù)據(jù),最長為8,000 個字符。

      char和varchar都是字符串類型的,用Unicode編碼的字符串,結果是字符的整數(shù)值.8.select 1 from:

      select 1 from mytable;與select anycol(目的表集合中的任意一行)from mytable;與select * from mytable 作用上來說是沒有差別的,都是查看是否有記錄,一般是作條件用的。select 1 from 中的1是一常量,查到的所有行的值都是它,但從效率上來說,1>anycol>*,因為不用查字典表。

      查看記錄條數(shù)可以用select sum(1)from mytable;等價于select sum(*)from mytable;

      9.SQL中的字符匹配:

      [NOT] LIKE '<匹配串>' [ESCAPE '<換碼字符>']

      <匹配串>可以是一個完整的字符串,也可以含有通配符%和_

      %代表任意長度的字符串。eg:a%b表示以a開頭以b結尾的任意長度的字符串。_代表任意單個字符。eg:a_b表示以a開頭,以b結尾的長度為3的任意字符串。ESCAPE定義轉(zhuǎn)義字符,當轉(zhuǎn)義符置于通配符之前時,該通配符解釋為普通字符。

      10.GROUP BY子句將查詢結果按某一列或多列的值分組,值相等的為一組。HAVING短語給出選擇組的條件。

      11.ROW_NUMBER()OVER函數(shù)的基本用法 :

      row_number()OVER(PARTITION BY COL1 ORDER BY COL2)表示根據(jù)COL1分組,在分組內(nèi)部根據(jù) COL2排序,而此函數(shù)計算的值就表示每組內(nèi)部排序后的順序編號(組內(nèi)連續(xù)的唯一的)

      select row_number()over(order by field2 desc)as row_number,* from t_table order by field1 desc Desc:倒序,Asc:正序

      12.DbDataAdapter.Fill 方法(DataTable, IDbCommand, CommandBehavior):

      在DataTable中添加或刪除新行以匹配使用指定 DataTable 和 IDataReader 名稱的數(shù)據(jù)源中的行。

      13.SqlCommand.ExecuteScalar 方法:執(zhí)行查詢,并返回查詢所返回的結果集中第一行的第一列,忽略其他列或行。

      14.inner join(等值連接)只返回兩個表中聯(lián)結字段相等的行

      left join(左聯(lián)接)返回包括左表中的所有記錄和右表中聯(lián)結字段相等的記錄

      right join(右聯(lián)接)返回包括右表中的所有記錄和左表中聯(lián)結字段相等的記錄

      15.e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem指觸發(fā)的類型為DadaList中的基本行或內(nèi)容行

      16.order by的用法:

      如果Order by 中指定了表達式Nulls first則表示null值的記錄將排在最前(不管是asc 還是 desc)

      如果Order by 中指定了表達式Nulls last則表示null值的記錄將排在最后(不管是asc 還是 desc)

      eg:將nulls始終放在最前

      select * from zl_cbqc order by cb_ld nulls first

      --將nulls始終放在最后

      select * from zl_cbqc order by cb_ld desc nulls last

      單列升序:select from order by ;(默認升序,即使不寫ASC)

      單列降序:select from order by desc;

      多列升序:select , from order by , ;

      多列降序:select , from order by desc, desc;

      多列混合排序:select , from order by desc, asc;

      17.C#中NULL,“",DBNULL,String.Empty,Convert.IsDBNull區(qū)別

      (1)NULL

      null 關鍵字是表示不引用任何對象的空引用的文字值。null 是引用類型變量的默認值。那么也只有引用型的變量可以為NULL,如果 int i=null,的話,是不可以的,因為Int是值類型的。

      (2)DBNULL

      DBNull在DotNet是單獨的一個類型,該類只能存在唯一的實例,DBNULL.Value,DBNull唯一作用是可以表示數(shù)據(jù)庫中的字符串,數(shù)字,或日期,為什么可以表示原因是DotNet儲存這些數(shù)據(jù)的類(DataRow等)都是以 object 的形式來儲存數(shù)據(jù)的。對于 DataRow , 它的 row[column] 返回的值永遠不為 null,要么就是具體的為column 的類型的值。要么就是 DBNull。所以 row[column].ToString()這個寫法永遠不會在ToString那里發(fā)生NullReferenceException。DBNull 實現(xiàn)了 IConvertible。但是,除了 ToString 是正常的外,其他的ToXXX都會拋出不能轉(zhuǎn)換的錯誤。

      (3)”“和String.Empty

      這兩個都是表示空字符串,其中有一個重點是string str1=”“ 和 string str2=null 的區(qū)別,這樣定義后,str1是一個空字符串,空字符串是一個特殊的字符串,只不過這個字符串的值為空,在內(nèi)存中是有準確的指向的,string str2=null,這樣定義后,只是定義了一個string 類的引用,str2并沒有指向任何地方,在使用前如果不實例化的話,都將報錯。

      (4)Convert.IsDBNull()

      Convert.IsDBNull()返回有關指定對象是否為 DBNull 類型的指示,即是用來判斷對象是否為DBNULL的。其返回值是True或Flase。

      string.Empty不分配存儲空間

      ”“分配一個長度為空的存儲空間

      所以一般用string.Empty

      null表示一個對象的指向無效,即該對象為空對象

      DBNull。Value表示一個對象在數(shù)據(jù)庫中的值為空,或者說為初始化,DBNull。Value對象指向有效的對象

      18.DataSet.Relations.add():獲取用于將表鏈接起來并允許從父表瀏覽到子表的關系的集合。DataSet.Relations.Add(”關聯(lián)名稱“, 父關聯(lián)主鍵字段, 子關聯(lián)外來鍵字段)

      19.DataBind():在Page_Load方法中我們建立了一個數(shù)組(ArrayList),并通過DataBind方法將這個數(shù)組捆綁到了DropDownList控件中,使得DropDownList最后有數(shù)據(jù)顯示:)

      20.IN 操作符允許我們在 WHERE 子句中規(guī)定多個值。

      SQL IN 語法:SELECT column_name(s)FROM table_nameWHERE column_name IN(value1,value2,...)

      21.DataBinder.Eval方法:在運行時使用反射來分析和計算對象的數(shù)據(jù)綁定表達式<%# DataBinder.Eval(Container.DataItem, ”ColumnName“)%>

      eval()函數(shù)可計算某個字符串,并執(zhí)行其中的的 JavaScript 代碼。

      可以理解為反射的綁定

      或者理解為將Eval()里的字符串轉(zhuǎn)換為表達式

      在數(shù)據(jù)綁定的時候常用,其實是通過反射的手段實現(xiàn)了綁定

      22.sql語句 count(1)與 count(*)的區(qū)別 :

      count(1),其實就是計算一共有多少符合條件的行。

      1并不是表示第一個字段,而是表示一個固定值。

      其實就可以想成表中有這么一個字段,這個字段就是固定值1,count(1),就是計算一共有多少個1.count(*),執(zhí)行時會把星號翻譯成字段的具體名字,效果也是一樣的,不過多了一個翻譯的動作,比固定值的方式效率稍微低一些。

      23.DataTable.NewRow :創(chuàng)建與該表具有相同框架的新的DataRow

      24.ExcuteNonQuery():

      如果要創(chuàng)建或修改數(shù)據(jù)庫結構,操作成功時返回值為-1;如果要更新記錄,返回值為操作影響的記錄數(shù);

      ExecuteNonQuery()方法主要用于用戶更新數(shù)據(jù),通常它使用Update,Insert,Delete語句來操作數(shù)據(jù)庫,其方法返回值意義:對于 Update,Insert,Delete 語句 執(zhí)行成功是返回值為該命令所影響的行數(shù),如果影響的行數(shù)為0時返回的值為0,如果數(shù)據(jù)操作回滾得話返回值為-1,關于MyCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的區(qū)別:

      ***ExecuteNonQuery():執(zhí)行SQL,返回一個整型變量,如果SQL是對數(shù)據(jù)庫的記錄進行操作,那么返回操作影響的記錄條數(shù),如果是SQL=”CREATE TABLE LookupCodes(code_id smallint IDENTITY(1,1)PRIMARY KEY CLUSTERED, code_desc varchar(50)NOT NULL)"那么在表創(chuàng)建成功后該方法返回-1。

      ***ExecuteScalar():執(zhí)行SQL,(如果SQL是查詢Select)返回查詢結果的第一行第一列,如果(如果SQL不是查詢Select)那么返回未實列化的對象,因為對象未實列化,所以返回結果不能ToString(),不能Equals(null),也就是說返回結果沒有任何作用

      ***executeReader方法執(zhí)行SQL,(如果SQL是查詢Select)返回查詢結果的集合,類型是 System.Data.OleDb.OleDbDataReader,你可以通過此結果,獲取查詢的數(shù)據(jù)。如果(如果SQL不是查詢Select)那么返回一個沒有任何數(shù)據(jù)的System.Data.OleDb.OleDbDataReader類型的集合(EOF)

      25.DbDataAdapter.Fill 方法(DataTable):在 DataSet 的指定范圍中添加或刷新行,以與使用 DataTable 名稱的數(shù)據(jù)源中的行匹配。

      26.Decimal:decimal(2,1),有效長度為2,小數(shù)位占1位。

      varchar:可變長度的非Unicode數(shù)據(jù),最長為8,000 個字符。

      nvarchar:可變長度Unicode 數(shù)據(jù),其最大長度為4,000字符。

      char: 固定長度的非 Unicode 字符數(shù)據(jù),最大長度為 8,000 個字符。

      nchar :固定長度的 Unicode 數(shù)據(jù),最大長度為 4,000 個字符。

      char和varchar都是字符串類型的,用Unicode編碼的字符串,結果是字符的整數(shù)值.timestamp:數(shù)據(jù)類型是一種特殊的數(shù)據(jù)類型,用來創(chuàng)建一個數(shù)據(jù)庫范圍內(nèi)的唯一數(shù)碼。一個表中只能有一個timestamp列。每次插入或修改一行時,timestamp列的值都會改變。盡管它的名字中有“time”,但timestamp列不是人們可識別的日期。在一個數(shù)據(jù)庫里,timestamp值是唯一的Uniqueidentifier特殊數(shù)據(jù)型

      SELECT UPPER('Kelly'):upper是數(shù)據(jù)庫的字符串函數(shù),它的作用是將傳遞給它的英文字符串中小寫字母轉(zhuǎn)換為大寫(大寫的保持不變);

      SELECT LOWER('kelly'):lower將指定字符串中的大寫字母換成小寫字母

      SUBSTRING(colunm name,startposition,length)從指定字符串中取字符

      eg:SQL實例:

      顯示每個地區(qū)的總人口數(shù)和總面積.

      SELECT region, SUM(population), SUM(area)

      FROM bbc

      GROUP BY region

      先以region把返回記錄分成多個組,這就是GROUP BY的字面含義。分完組后,然后用聚合函數(shù)對每組中的不同字段(一或多條記錄)作運算。

      顯示每個地區(qū)的總人口數(shù)和總面積.僅顯示那些面積超過1000000的地區(qū)。

      SELECT region, SUM(population), SUM(area)

      FROM bbc

      GROUP BY region

      HAVING SUM(area)>1000000

      27.SELECT [ALL|DISTINCT] <目標列表達式> [別名] [,<目標列表達式> [別名]]…… FROM <表名或視圖名> [別名] [,<表名或視圖名> [別名]]……

      [WHERE <條件表達式>]

      [GROUP BY <列名1> [HAVING <條件表達式>]]

      [ORDER BY <列名2> [ASC|DESC]]

      INSERT

      INTO <表名> [(<屬性列1>[,<屬性列2>……])]

      VALUES(<常量1> [,<常量2>]……)

      UPDATE <表名>

      SET <列名>=<表達式> [,<列名>=<表達式>]……

      [WHERE <條件>]

      DELETE

      FROM <表名>

      [WHERE <條件>]

      第三篇:matlab總結

      班級: 學號: 姓名:

      Matlab學習綜述

      MATLAB是一種科學計算軟件,專門以矩陣的形式處理數(shù)據(jù)。MATLAB將高性能的數(shù)值計算和強大的數(shù)據(jù)可視化功能集成在一起,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應用于科學計算、控制系統(tǒng)、信息處理等領域的分析、仿真和設計工作,而且利用MATLAB產(chǎn)品的開放式結構,可以非常容易地對MATLAB的功能進行擴充。

      MATLAB產(chǎn)品由若干個模塊組成,不同的模塊完成不同的功能,其中主要的核心模塊有MATLAB、MATLAB Toolboxex、MATLAB Compiler Simulink、Simulink Blocksets、Real-time Workshop(RTW)Stateflow。這些產(chǎn)品大體上可以分為以MATLAB為基礎的產(chǎn)品和以Simulink為基礎的產(chǎn)品兩大分支。其中,MATLAB是MATLAB產(chǎn)品家族的基礎,任何其他MATLAB產(chǎn)品產(chǎn)品都以這個模塊為基礎。MATLAB的桌面應用程序開發(fā)工具是以MATLAB Compiler為核心的一組編譯工具。Simulink是基于MATLAB的框圖設計環(huán)境,可以用來對各種動態(tài)系統(tǒng)進行建模,分析和仿真,它的建模范圍廣泛,可以針對任何能夠用數(shù)字來描述的系統(tǒng)進行建模。

      一種完整的計算機應用語言應該提供對數(shù)據(jù)的描述和對數(shù)據(jù)的操作。在M語言中,最常用的數(shù)據(jù)類型表現(xiàn)手段和形式就是變量和常量,由于MATLAB軟件自身的特點,它是一種以數(shù)值計算為基礎的軟件,因此M語言的基本處理單位是數(shù)值矩陣或者數(shù)值向量,在M語言中統(tǒng)一將矩陣或者向量稱之為數(shù)組,因此掌握一些基本的矩陣、向量和數(shù)組操作的基本知識就成為了掌握MATLAB軟件的基礎。變量和常量是編程語言中類型的表現(xiàn)手段和形式,掌握變量和常量的概念也是掌握M語言編程的基礎。所謂變量,就是指在程序運行中需要改變數(shù)值的量,每一個變量都具有一個名字,變量將在內(nèi)存中占據(jù)一定的空間,以在程序運行的過程中保存其數(shù)值,對變量的命名有相應的要求:變量必須以字母開頭,后面可以是字母、數(shù)字或者下劃線之間的組合。所謂常量就是在程序運行的過程中不需要改變數(shù)值的量。

      MATLAB專門以矩陣作為基本的運算單位,首先要掌握向量、矩陣、索引和多維數(shù)組的概念,以及在MATLAB環(huán)境下創(chuàng)建向量、矩陣和多維數(shù)組的方法,以及操作矩陣和多維數(shù)值的函數(shù)的使用方法。

      目前的MATLAB版本中不僅有多達十幾種的基本數(shù)據(jù)類型。在不同的專業(yè)工具箱中還有特殊的數(shù)據(jù)類型,并且MATLAB還支持面向?qū)ο蟮木幊碳夹g,支持用戶自定義的數(shù)據(jù)類型。獲取MATLAB的數(shù)據(jù)類型可以在MATLAB命令行窗體中鍵入help datatypes。MATLAB的數(shù)據(jù)類型包括基本的數(shù)值類型,邏輯類型數(shù)據(jù)、元胞數(shù)值、結構和字符串等,需要指出一點,MATLAB的基本數(shù)據(jù)是雙精度數(shù)據(jù)類型和字符類型。MATLAB提供了完整的編寫應用程序的功能,這種能力被稱為M語言的高級語言來實現(xiàn)。這種語言是一種解釋性語言,利用該語言編寫的代碼僅能被MATLAB接受,被MATLAB解釋執(zhí)行。其實,一個M語言文件就是由若干MATLAB的命令組合在一起構成的,和C語言類似。M語言文件都是標準的純文本格式的文件,其文件的擴展名為.m。MATLAB的函數(shù)主要有兩類,一類被稱為內(nèi)建函數(shù),這類函數(shù)是由MATLAB的內(nèi)核提供的,能夠完成基本的運算,例如三角函數(shù)、矩陣運算函數(shù)等。另外一類函數(shù)就是利用高級語言開發(fā)的函數(shù)文件,這里的函數(shù)文件包括用C/FORTRAN語言開發(fā)的MEX函數(shù)文件,也包括了M函數(shù)文件。

      M語言文件可以分為兩類,其中一類是腳本文件,另一類是函數(shù)文件,腳本文件是最簡單的一種M語言文件。所謂腳本文件就是由一系列的M語言文件指令和命令組成的純文本格式的M文件,執(zhí)行腳本文件時,文件中的指令或者命令按照出現(xiàn)在腳本文件中的順序依次執(zhí)行。腳本文件沒有輸入?yún)?shù),也沒有輸出參數(shù),腳本文件處理的數(shù)據(jù)或者變量必須在MATLAB的公共工作空間中,腳本文件主要是由注視行和代碼行組成。

      函數(shù)文件是M文件最重要的組成部分,M語言函數(shù)文件能夠接受用戶的輸入?yún)?shù),并進行計算,然后將計算結果作為函數(shù)的返回值返回給調(diào)用者,M函數(shù)文件和腳本文件不同,函數(shù)文件不僅有自己特殊的文件格式,而且不同的函數(shù)還分別具有自己的工作空間,函數(shù)文件的輸/輸出參數(shù)不同,這些輸入/輸出參數(shù)在定義的時候不需要指出變量的類型,因為MATLAB默認這些參數(shù)都使用雙精度類型,這樣可以簡化程序的編寫。M語言的函數(shù)文件不僅可以有一個輸入?yún)?shù)和一個返回值,還可以為M語言函數(shù)文件定義多個輸入?yún)?shù)和多個輸出參數(shù),同一個M函數(shù)文件中可以包含多個函數(shù)。如果在同一個M函數(shù)文件中包含了多個函數(shù),那么將出現(xiàn)在文件中的第一個M函數(shù)稱為主函數(shù),其余的函數(shù)稱為子函數(shù)。

      經(jīng)過這么一段時間的學習,對MATLAB有了初步的認識。但是關于它還有很多知識我們所不知道,還有待進一步的學習。以上內(nèi)容是我對這學期所學課程的總結,可能有些地方總結的不夠到位,因為有些地方學習的不夠深入,所以,以后要更加努力,在MATLAB的學習上多花一些時間,為以后的學習和工作打下基礎。

      第四篇:MATLAB總結

      目錄

      一、Matlab相關說明.....................................................................2

      二、Matlab操作注意事項..............................................................2

      三、Matlab常用代碼(圖像處理相關)......................................5

      四、Matlab常用快捷鍵.................................................................7

      五、Matlab學習心得.....................................................................8

      一、Matlab相關說明

      Matlab是“Matrix Laboratory”的縮寫,意為“矩陣實驗室”。MATLAB和Mathematica、Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。

      MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數(shù)學軟件。在新的版本中也加入了對C,F(xiàn)ORTRAN,C++,JAVA的支持。

      我所使用的Matlab版本是2012a,下文所涉及到圖片、專業(yè)術語等都是以此版本為基礎。

      二、Matlab操作注意事項

      1.打開并運行一個現(xiàn)存的m文件且這個m文件運行時需用到同一級文件夾中的其他文件,會出現(xiàn)如下提示框:

      選擇變更文件夾,將當前文件夾變更為這個m文件所在的文件夾。

      2.不小心點錯或關閉了各種小窗口,將Matlab恢復成默認布局

      點擊桌面—桌面布局—默認

      3.查看某個函數(shù)的用法

      在命令窗口輸入該變量的名稱,回車即可。

      4.查找某個函數(shù)的用法

      在命令窗口輸入help+函數(shù)的名稱,回車后會自動顯示該函數(shù)的相關信息。

      5.運行文件后報錯 如下圖所示,命令窗口中報錯的第一段是錯誤的原因,后面幾段會顯示發(fā)生錯誤的文件夾以及在該文件夾中的位置。

      點擊文件的名稱,會跳轉(zhuǎn)出一個提示框,上面顯示了該文件的具體實現(xiàn)功能,如下圖所示。點擊文件名后面的行標號,可以直接跳轉(zhuǎn)到發(fā)生錯誤的那一行。

      6.如何編輯界面?

      修改如圖所示的fig文件

      1.新建一個GUI文件

      2.選擇打開現(xiàn)存的GUI文件,點擊Open,就可以對當前界面進行編輯了。

      7.如何將MAtlab中默認的current folder修改為自己想要的路徑,每次啟動后都默認是自己 設定的這個路徑?

      >>右鍵matlab 快捷方式,屬性-快捷方式-起始位置 填入你自己的工作目錄。8.把圖復制到WORD文件的方法:電機EDIT—>Copy Figure—>Ctrl+V 9.輸入時,標點必須是英文狀態(tài)下的

      10.大多數(shù)情況下,matlab對空格不予處理

      11.小括號代表運算級別,中括號用于生成矩陣,大括號用于構成單元數(shù)組

      12.分號;的作用:不顯示運算結果,但對圖形窗口不起作用。分號也用于區(qū)分行,13.逗號,的作用:函數(shù)參數(shù)分隔符,也用于區(qū)分行,顯示運算結果,當然不加標點也顯示運算結果

      14.冒號:多用于數(shù)組

      15.續(xù)行號...不能放在等號后面使用,不能放在變量名中間使用,起作用時默認顯藍色 16.雙引號'string'是字符串的標識符 17.感嘆號!用于調(diào)用操作系統(tǒng)運算

      18.百分號%是注釋號,百分號后面直到行末的語句matlab跳過執(zhí)行.另外還有一個塊注釋,即對多行一次注釋,會使用到,格式為(注意%{ 和%}都要單獨成行)%{ %} 19.矩陣中用圓括號表示下標,單元數(shù)組用大括號表示下標

      20.對變量名的基本要求:區(qū)分大小寫,不超過63個字符,以字母開頭,只能是字母,數(shù)字和下劃線

      三、Matlab常用代碼(圖像處理相關)

      1.創(chuàng)建一個文件夾 mkdir('D:myData');2.將圖片保存到指定的文件夾

      image_source=strcat('result',num2str(loop),'.jpg');imwrite(F.cdata,image_source);3.將電影轉(zhuǎn)成圖片序列

      fnum=size(mov,2);%讀取電影的禎數(shù) for i=1:fnum strtemp=strcat('C:UsersAdministratorDesktopparticalfiltermyself粒子濾波',int2str(i),'.jpg');%將每禎轉(zhuǎn)成jpg的圖片 imwrite(mov(i).cdata,strtemp,'jpg');end

      4、模擬噪聲生成函數(shù)和預定義濾波器

      ① imnoise:用于對圖像生成模擬噪聲,如:

      i=imread('104_8.tif');j=imnoise(i,'gaussian',0,0.02);%模擬高斯噪聲 ② fspecial:用于產(chǎn)生預定義濾波器,如: h=fspecial('sobel');%sobel水平邊緣增強濾波器 h=fspecial('gaussian');%高斯低通濾波器 h=fspecial('laplacian');%拉普拉斯濾波器

      h=fspecial('log');%高斯拉普拉斯(LoG)濾波器 h=fspecial('average');%均值濾波器

      5、圖像文件I/O函數(shù)命令

      imfinfo 返回圖形圖像文件信息

      語法:info=imfinfo(filename,fmt)info=imfinfo(filename)imread 從圖像文件中讀?。ㄝd入)圖像

      語法:A=imread(filename,fmt)[X,map]=imread(filename,fmt)[...]=imread(filename)[...]=imread(URL,...)[...]=imread(...,idx)(CUR,ICO,and TIFF only)[...]=imread(...,'frames',idx)(GIF only)[...]=imread(...,ref)(HDF only)[...]=imread(...,'BackgroundColor',BG)(PNG only)[A,map,alpha] =imread(...)(ICO,CUR,PNG only)imwrite 把圖像寫入(保存)圖像文件中

      語法:imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)imwrite(...,filename)imwite(...,Param1,Val1,Param2,Val2...)imcrop 剪切圖像

      語法:I2=imcrop(I)X2=imcrop(X,map)RGB2=imcrop(RGB)I2=imcrop(I,rect)X2=imcrop(RGB,rect)[...]=imcrop(x,y,...)[A,rect]=imcrop(...)[x,y,A,rect]=imcrop(...)

      6.impixel 確定像素顏色值

      語法:P=impixel(I)P=impixel(X,map)P=impixel(RGB)P=impixel(I,c,r)P=impixel(X,map,c,r)P=impixel(RGB,c,r)[c,r,P]=impixel(...)P=impixel(x,y,I,xi,yi)P=impixel(x,y,RGB,xi,yi)P=impixel(x,y,X,map,xi,yi)[xi,yi,P]=impixel(x,y,...)

      7.二進制圖像操作函數(shù)

      applylut 在二進制圖像中利用lookup表進行行邊沿操作 語法:A=applylut(BW,LUT)bwarea 計算二進制圖像對象的面積 語法:total=bwarea(BW)bweuler 計算二進制圖像的歐拉數(shù) 語法:eul=bweuler(BW)

      8.顏色空間轉(zhuǎn)換函數(shù)

      hsv2rgb 轉(zhuǎn)換HSV值為RGB顏色空間:M=hsv2rgb(H)ntsc2rgb 轉(zhuǎn)換NTSC值為RGB顏色空間:rgbmap=ntsc2rgb(yiqmap)RGB=ntsc2rgb(YIQ)rgb2hsv 轉(zhuǎn)換RGB值為HSV顏色空間:cmap=rgb2hsv(M)rgb2ntsc 轉(zhuǎn)換RGB值為NTSC顏色空間:yiqmap=rgb2ntsc(rgbmap)YIQ=rgb2ntsc(RGB)rgb2ycbcr 轉(zhuǎn)換RGB值為YCbCr顏色空間:ycbcrmap=rgb2ycbcr(rgbmap)YCBCR=rgb2ycbcr(RGB)ycbcr2rgb 轉(zhuǎn)化YCbCr值為RGB顏色空間:rgbmap=ycbcr2rgb(ycbcrmap)RGB=ycbcr2rgb(YCBCR)

      9.類型轉(zhuǎn)換函數(shù)

      im2bw 轉(zhuǎn)換圖像為二進制圖像

      語法:BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)im2double 轉(zhuǎn)換圖像矩陣為雙精度型

      語法:I2=im2double(I1)RGB2=im2double(RGB1)I=im2double(BW)X2=im2double(X1,'indexed')double 轉(zhuǎn)換數(shù)據(jù)為雙精度型 語法:double(X)unit8、unit16轉(zhuǎn)換數(shù)據(jù)為8位、16位無符號整型: i=unit8(x)i=unit16(x)im2unit8 轉(zhuǎn)換圖像陣列為8位無符號整型

      語法:I2=im2unit8(I1)RGB2=im2unit8(RGB1)I=im2unit8(BW)X2=im2unit8(X1,'indexed')im2unit16 轉(zhuǎn)換圖像陣列為16位無符號整型

      語法:I2=im2unit16(I1)RGB2=im2unit16(RGB1)I=im2unit16(BW)X2=im2unit16(X1,'indexed')

      四、Matlab常用快捷鍵

      1.在命令窗口(Command Window)中:

      1)【上、下鍵】――切換到之前、之后的命令,可以重復按多次來達到你想要的命令

      2)clc――清除命令窗口顯示的語句,此命令并不清空當前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉

      3)clear――這個才是清空當前工作區(qū)的變量命令,常用語句clear all來完成 4)【Tab】鍵――在command窗口,輸入一個命令的前幾個字符,然后按tab鍵,會彈出前面含這幾個字符的所有命令,找到你要的命令,回車,就可以自動完成。目前討論結果是:matlab6.5版本中,如果候選命令超過100個,則不顯示。而在matlab7以后版本中,則沒有這個限制,均可正常提示 5)【Ctrl+C】(或【Ctrl+Break】)――在matlab程序運行過程中,可能由于程序編寫的失誤,導致程序不停的運行,在命令窗口輸入“Ctrl+C”可以將運行的程序停下來,而不需要將整個Matlab程序關掉。不過進行此操作的前提是能夠激活切換到命令窗口才行。6)edit+函數(shù)名 查看或編輯源文件 7)who 顯示當前變量名列表 8)whos 顯示變量詳細列表

      9)which+函數(shù)名 證實該函數(shù)是否在當前路徑 10)what 列出當前路徑的所有matlab文件 11)load 加載外部文件 12)save 保存文件到外部 13)20.matlab的幫助函數(shù): 14)help 15)help+函數(shù)名或help+函數(shù)類名 精確查詢 16)helpwin 打開幫助窗口 17)helpwin+函數(shù)名 精確查詢 18)helpdesk 打開幫助窗口 19)doc 打開幫助窗口

      20)doc+函數(shù)名 打開幫助窗口,精確查詢

      21)lookfor+關鍵字 這個是matlab中的谷歌,模糊查詢

      2.在編輯器(Editor)中: 1)【Tab】(或【Ctrl+]】)――增加縮進(對多行有效)2)3)4)5)6)【Ctrl+[】--減少縮進(對多行有效)

      【Ctrl+I】--自動縮進(即自動排版,對多行有效)【Ctrl+R】――注釋(對多行有效)【Ctrl+T】――去掉注釋(對多行有效)

      【Ctrl+B】――括號配對檢查(對版本6.5有效,但版本7.0無效,不知道是取消了還是換了另外的快捷鍵,請大牛們指點,其他版本沒有測試過)7)【F12】――設置或取消斷點 8)【F5】――運行程序

      五、Matlab學習心得

      接觸Matlab一個多月,從剛開始連最基本的操作都不會,到現(xiàn)在能夠熟練地運用Matlab解決問題。雖然現(xiàn)在學到的也只是皮毛而已,離精通還相差甚遠,但至少為以后研究生期間的學習打下了良好的基礎。下面我就簡單的談一下這一個月來的學習感想。

      首先,想要學好Matlab必須有一定數(shù)學基礎。Matlab軟件是與高等數(shù)學,計算機科學相結合的軟件。所以,當你學習Matlab時,你也得會一定的數(shù)學。你要盡量多的熟悉matlab自帶的函數(shù),及其作用,因為matlab的自帶函數(shù)特別多,基本上能夠滿足一般的數(shù)據(jù)和矩陣的計算,所以基本上不用你自己編函數(shù)。這一點對你的程序非常有幫助,可以使你的程序簡單,運行效率高,可以節(jié)省很多時間。

      其次,要注重基礎知識于實際操作結合。你把基本的知識看過之后,就需要找一個實際的程序來動手編一下,不要等所有的知識都學好之后再去編程,你要在編程的過程中學習,程序需要什么知識再去補充。在遇到問題時,不要光看別人如果解決,也不要光想怎么解決,自己坐下來,動手自己解決一下,那你就會把不是你的知識變成自己的知識。

      最后,也是最重要的一點就是堅持。MATLAB涉及的領域太多,每個領域里面都缺乏足夠的專家分布在你周圍。那么我們很難有機會接觸到真正的高手,對我們的技術細節(jié)一一指點。在遇到實際問題時,就只能靠自己去摸索。常常是再堅持一兩個小時,就能夠解決你的問題。最大的成就感,就在付出了極大的心血和耐心,才取得一個艱難的小勝利。

      第五篇:MATLAB總結與上機指南

      化工計算中常用的MATLAB命令總結

      化學工程中的計算問題一般比較復雜, 其操作的數(shù)據(jù)對象通常是數(shù)組, 具體計算涉及到插值、求積分、參數(shù)擬合、解常微分和偏微分微分方程、解線性和非線性方程等。MATLAB是新一代的科學計算語言, 在解決上述問題上, 相對于FORTRAN、C 和BASIC等傳統(tǒng)的計算語言具有明顯的優(yōu)越性。本文針對應用MATLAB 解決化工中的典型問題進行計算常用方法和命令做以小結。1.最小二乘法擬合 1.1 最小二乘擬合直線

      函數(shù)

      lsline 格式

      lsline

      %最小二乘擬合直線

      h = lsline

      %h為直線的句柄 1.2約束線性最小二乘

      有約束線性最小二乘的標準形式為

      minx1Cx?d222

      sub.to

      A?x?b

      Aeq?x?beq

      lb?x?ub

      其中:C、A、Aeq為矩陣;d、b、beq、lb、ub、x是向量。在MATLAB5.x中,約束線性最小二乘用函數(shù)conls求解。

      函數(shù)

      lsqlin

      格式

      x = lsqlin(C,d,A,b)

      %求在約束條件A?x?b下,方程Cx = d的最小二

      乘解x。

      x = lsqlin(C,d,A,b,Aeq,beq)

      %Aeq、beq滿足等式約束Aeq?x?beq,若沒有不等式約束,則設A=[ ],b=[ ]。

      x = lsqlin(C,d,A,b,Aeq,beq,lb,ub)

      %lb、ub滿足lb?x?ub,若沒有等

      式約束,則Aeq=[ ],beq=[ ]。

      x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)

      % x0為初始解向量,若x沒有界,則lb=[ ],ub=[ ]。

      x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)

      % options為指定優(yōu)化參數(shù) [x,resnorm] = lsqlin(…)

      % resnorm=norm(C*x-d)^2,即2-范數(shù)。[x,resnorm,residual] = lsqlin(…)

      %residual=C*x-d,即殘差。

      [x,resnorm,residual,exitflag] = lsqlin(…)

      %exitflag為終止迭代的條件 [x,resnorm,residual,exitflag,output] = lsqlin(…)

      % output表示輸出優(yōu)化

      信息

      [x,resnorm,residual,exitflag,output,lambda] = lsqlin(…)

      % lambda為解x的Lagrange乘子

      1.3 非線性最小二乘

      非線性最小二乘(非線性數(shù)據(jù)擬合)的標準形式為

      minxf(x)?f1(x)2?f2(x)2???fm(x)2?L

      其中:L為常數(shù)

      在MATLAB5.x中,用函數(shù)leastsq解決這類問題,在6.0版中使用函數(shù)lsqnonlin。

      ?f1(x)???f2(x)? 設F(x)????????fm(x)?則目標函數(shù)可表達為minx12F(x)22?1?fi(x)2 2i其中:x為向量,F(xiàn)(x)為函數(shù)向量。函數(shù)

      lsqnonlin 格式

      x = lsqnonlin(fun,x0)

      %x0為初始解向量;fun為fi(x),i=1,2,…,m,fun返回向量值F,而不是平方和值,平方和隱含在算法中,fun的定義與前面相同。

      lb?x?ubx = lsqnonlin(fun,x0,lb,ub)

      %lb、ub定義x的下界和上界:。

      x = lsqnonlin(fun,x0,lb,ub,options)

      %options為指定優(yōu)化參數(shù),若x沒有界,則lb=[ ],ub=[ ]。

      [x,resnorm] = lsqnonlin(…)% resnorm=sum(fun(x).^2),即解x處函數(shù)值。[x,resnorm,residual] = lsqnonlin(…)

      % residual=fun(x),即解x處fun的值。[x,resnorm,residual,exitflag] = lsqnonlin(…)

      %exitflag為終止迭代條件。[x,resnorm,residual,exitflag,output] = lsqnonlin(…)%output輸出優(yōu)化信息。[x,resnorm,residual,exitflag,output,lambda] = lsqnonlin(…)

      %lambda為

      Lagrage乘子。

      [x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqnonlin(…)

      %fun

      在解x處的Jacobian矩陣。

      多項式 2.1 多項式求值

      函數(shù)名稱:polyval 調(diào)用格式:y=polyval(p,x),[y,delta]=polyval(p,x,S)返回多項式p在x點處的取值。X可以是向量也可以是矩陣。[y,delta] = polyval(p,x,S)同時還生成誤差估計。2.2 多項式求根

      函數(shù)名稱:roots 調(diào)用格式:r=roots(c)

      返回一個元素為多項式c的根的列向量。行向量中包含按降冪排列的多項式的系數(shù),如果c中包含n+1個元素,則多項式的表達式為:c1sn+…+cns+cn+1。3 插值 3.1 一維插值

      函數(shù)名稱:interp1 調(diào)用格式:yi=interp1(x,Y,xi), yi=interp1(x,Y,xi,method)MATLAB中有兩類一維數(shù)據(jù)插值方法:多項式插值法和基于FFT的插值法。函數(shù)interp1采用多項式插值法,它用多項式擬合所給出的數(shù)據(jù),然后在插值點上根據(jù)多項式算出相應的值。調(diào)用格式中,xi為需要插值的位置所組成的向量,yi 為根據(jù)插值算法求得的值所組成的向量。x,Y為已知的數(shù)據(jù)點向量。參數(shù)method用于確定具體的插值方法,包括:

      ‘linear’表示采用線性插值方法;‘cubic’表示采用三次插值的方法; ‘nearest’表示采用最近點插值法;‘spline’表示用三次樣條插值方法。3.2 二維插值

      函數(shù)名稱:interp2 調(diào)用格式

      ZI = interp2(X,Y,Z,XI,YI)

      返回矩陣ZI,其元素包含對應于參量XI與YI(可以是向量、或同型矩陣)的元素,即Zi(i,j)←[Xi(i,j),yi(i,j)]。

      ZI = interp2(Z,XI,YI)

      缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按 ’nearest’:最臨近插值; ’spline’:三次樣條插值; ’cubic’:雙三次插值。非線性數(shù)據(jù)(曲線)擬合

      非線性曲線擬合是已知輸入向量xdata和輸出向量ydata,并且知道輸入與輸出的函數(shù)關系為ydata=F(x, xdata),但不知道系數(shù)向量x。今進行曲線擬合,求x使得下式成立:

      minx1F(x,xdata)?ydata222?1?(F(x,xdatai)?ydatai)2 2i在MATLAB5.x中,使用函數(shù)curvefit解決這類問題。函數(shù)

      lsqcurvefit 格式

      x = lsqcurvefit(fun,x0,xdata,ydata)x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)[x,resnorm] = lsqcurvefit(…)[x,resnorm,residual] = lsqcurvefit(…)[x,resnorm,residual,exitflag] = lsqcurvefit(…)[x,resnorm,residual,exitflag,output] = lsqcurvefit(…)[x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…)[x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(…)參數(shù)說明:

      x0為初始解向量;xdata,ydata為滿足關系ydata=F(x, xdata)的數(shù)據(jù); lb、ub為解向量的下界和上界lb?x?ub,若沒有指定界,則lb=[ ],ub=[ ];

      options為指定的優(yōu)化參數(shù);

      fun為擬合函數(shù),其定義方式為:x = lsqcurvefit(@myfun,x0,xdata,ydata),其中myfun已定義為

      function F = myfun(x,xdata)F = …

      % 計算x處擬合函數(shù)值fun的用法與前面相同; resnorm=sum((fun(x,xdata)-ydata).^2),即在x處殘差的平方和; residual=fun(x,xdata)-ydata,即在x處的殘差; exitflag為終止迭代的條件; output為輸出的優(yōu)化信息; lambda為解x處的Lagrange乘子;

      jacobian為解x處擬合函數(shù)fun的jacobian矩陣。

      數(shù)值積分

      5.1 一元函數(shù)的數(shù)值積分

      函數(shù)名稱:

      quad、quadl、quad8 調(diào)用格式 q = quad(fun,a,b)

      %近似地從a到b計算函數(shù)fun的數(shù)值積分,誤差為10。給fun輸入向量x,應返回向量y,即fun是一單值函數(shù)。q = quad(fun,a,b,tol)

      %用指定的絕對誤差tol代替缺省誤差。tol越大,函數(shù)計算的次數(shù)越少,速度越快,但結果精度變小。

      q = quad(fun,a,b,tol,trace,p1,p2,…)

      %將可選參數(shù)p1,p2,…等傳遞給函數(shù)fun(x,p1,p2,…),再作數(shù)值積分。若tol=[]或trace=[],則用缺省值進行計算。

      [q,n] = quad(fun,a,b,…)%同時返回函數(shù)計算的次數(shù)n … = quadl(fun,a,b,…)

      %用高精度進行計算,效率可能比quad更好?!?= quad8(fun,a,b,…)

      %該命令是將廢棄的命令,用quadl代替。

      5.2 一元函數(shù)的數(shù)值積分

      函數(shù)名稱:

      dblquad 功能

      矩形區(qū)域上的二重積分的數(shù)值計算

      調(diào)用格式

      q = dblquad(fun,xmin,xmax,ymin,ymax)

      調(diào)用函數(shù)quad在區(qū)域[xmin,xmax, ymin,ymax]上計算二元函數(shù)z=f(x,y)的二重積分。輸入向量x,標量y,則f(x,y)必須返回一用于積分的向量。

      q = dblquad(fun,xmin,xmax,ymin,ymax,tol)

      用指定的精度tol代替缺省精度10-6,再進行計算。

      q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method)

      用指定的算法method代替缺省算法quad。method的取值有@quadl或用戶指定的、與命令quad與quadl有相同調(diào)用次序的函數(shù)句柄。

      q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method,p1,p2,…)

      將可選參數(shù)p1,p2,..等傳遞給函數(shù)fun(x,y,p1,p2,…)。若tol=[],method=[],則使用缺省精度和算法quad。非線性方程組的解

      非線性方程組的標準形式為:F(x)= 0 其中:x為向量,F(xiàn)(x)為函數(shù)向量。函數(shù)

      fsolve 格式

      x = fsolve(fun,x0)

      用fun定義向量函數(shù),其定義方式為:先定義方程函數(shù)function F = myfun(x)。

      F =[表達式1;表達式2;…表達式m] 保存為myfun.m,并用下面方式調(diào)用:x =

      -6fsolve(@myfun,x0),x0為初始估計值。

      x = fsolve(fun,x0,options)[x,fval] = fsolve(…)

      fval=F(x),即函數(shù)值向量 [x,fval,exitflag] = fsolve(…)[x,fval,exitflag,output] = fsolve(…)[x,fval,exitflag,output,jacobian] = fsolve(…)

      jacobian為解x處的Jacobian陣。

      其余參數(shù)與前面參數(shù)相似。7 常微分方程數(shù)值解

      函數(shù)名稱:ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb 功能

      常微分方程(ODE)組初值問題的數(shù)值解 參數(shù)說明:

      solver為命令ode45、ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一。

      Odefun 為顯式常微分方程y’=f(t,y),或為包含一混合矩陣的方程M(t,y)*y’=f(t,y)。命令ode23只能求解常數(shù)混合矩陣的問題;命令ode23t與ode15s可以求解奇異矩陣的問題。

      Tspan 積分區(qū)間(即求解區(qū)間)的向量tspan=[t0,tf]。要獲得問題在其他指定時間點t0,t1,t2,…上的解,則令tspan=[t0,t1,t2,…,tf](要求是單調(diào)的)。

      Y0 包含初始條件的向量。

      Options 用命令odeset設置的可選積分參數(shù)。P1,p2,… 傳遞給函數(shù)odefun的可選參數(shù)。調(diào)用格式

      [T,Y] = solver(odefun,tspan,y0)

      在區(qū)間tspan=[t0,tf]上,從t0到tf,用初始條件y0求解顯式微分方程y’=f(t,y)。對于標量t與列向量y,函數(shù)f=odefun(t,y)必須返回一f(t,y)的列向量f。解矩陣Y中的每一行對應于返回的時間列向量T中的一個時間點。要獲得問題在其他指定時間點t0,t1,t2,…上的解,則令tspan=[t0,t1,t2,…,tf](要求是單調(diào)的)。

      [T,Y] = solver(odefun,tspan,y0,options)%用參數(shù)options(用命令odeset生成)設置的屬性(代替了缺省的積分參數(shù)),再進行操作。常用的屬性包括相對誤差值RelTol(缺省值為1e-3)與絕對誤差向量AbsTol(缺省值為每一元素為1e-6)。

      [T,Y] =solver(odefun,tspan,y0,options,p1,p2…)

      將參數(shù)p1,p2,p3,..等傳遞給函數(shù)odefun,再進行計算。若沒有參數(shù)設置,則令options=[]。

      下載matlab與sql總結word格式文檔
      下載matlab與sql總結.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發(fā)現(xiàn)有涉嫌版權的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權內(nèi)容。

      相關范文推薦

        SQL實驗報告總結

        《數(shù)據(jù)庫系統(tǒng)概論(第四版)》體會 學號: 姓名: 班級: 教師:學 期實 驗 總 結 與 心 得【實驗名稱】 數(shù)據(jù)庫的創(chuàng)建 【實驗內(nèi)容】 1、新建sql注冊表。 2、新建數(shù)據(jù)庫。主數(shù)據(jù)文件:......

        SQL語句經(jīng)典總結

        SQL語句經(jīng)典總結 一、入門 1、說明:創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE database-name2、說明:刪除數(shù)據(jù)庫 drop database dbname 3、說明:備份sql server --- 創(chuàng)建 備份數(shù)據(jù)的 device......

        經(jīng)典實用SQL語句大全總結

        經(jīng)典實用SQL語句大全總結 [編輯語言]2015-05-26 19:56 本文導航 1、首頁2、11、說明:四表聯(lián)查問題: 本文是經(jīng)典實用SQL語句大全的介紹,下面是該介紹的詳細信息。 下列語句部分......

        SQL各種約束總結

        SQL Server 各種約束總結 NOT NULL約束 Not null ,即不為空。Not null 約束強制字段始終包含值。這意味著,如果不向字段添加值,就無法插入新記錄或者更新記錄。添加此約束有......

        SQL語言總結

        select 姓名,sum(成績) as 總分from 學生 inner join 成績 on 學生.學號=成績.學號 group by 姓名 答:從通過學號建立的學生與成績關系表中選擇選擇學生成績的姓名集合Update 學......

        SQL語句總結

        SQL語句總結 一、插入記錄 1. 插入固定的數(shù)值 語法: INSERT[INTO]表名[(字段列表)]VALUES(值列表) 示例1: Insert into Students values('Mary’,24,’mary@163.com’) 若沒有指......

        SQL常用查詢總結

        1) 查詢?nèi)w學生的學號、姓名、所在系 select Sno,Sname,Sdept from Student 2) 查詢?nèi)w學生的詳細信息 select * from Student 3) 查詢?nèi)w學生的姓名及其出生日期 select Sn......

        SQL學習總結

        上個星期,自主學習了SQL Server ,基本了解了SQL Server的語法知識和結構,對SQL 有了一定的認識,現(xiàn)在我就對我這一星期對SQl的 學習做一個總結: 為了永久性的集中存放數(shù)據(jù),并且還......