版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、(1)程序設計programming:abort:中斷計算說明: abort 命令中斷當前計算并給出 Scilab 的提示符 ( “ - >”) 。如果用戶使用 pause 命令進入高層界面,可使用 abort 命令回到初始層界面,出現(xiàn) Scilab 的提示符 ( “ - >”) 。 Ans: 計算結(jié)果說明:如果表達式的值沒有被賦與任何變量,那么 Scilab 自動產(chǎn)生一個變量 Ans,用來存儲當前表達式的值。backslash ():矩陣左除調(diào)用格式:如 x=Ab說明: backslash ()代表矩陣左除, x=Ab 是方程 A*x=b 的解。如果 A 是一個方陣或者可逆矩陣
2、(nonsingular或者 invertible),那么 x=Ab 是方程 A*x=b的唯一確定的解,且等于x=inv(A)*b.(通俗的說,就是方程數(shù)目等于未知數(shù)個數(shù),所以解唯一。如A=1 2 1;3 2 2;2 31,b=8;13;11)如果 A 不是一個方陣,那么x 是最小二乘解,此時,該解x 使 norm(A*x-b) 最小。(通俗的說,就是方程數(shù)目不等于未知數(shù)個數(shù)。如果方程數(shù)目大于未知數(shù)個數(shù), 本來是沒有準確解的, 但可以根據(jù)最小二乘法原理擬合出最佳解。如 A=rand(3,2);b=1;1;1 。此時,由于 A 不是一個方陣,無法使用 inv(A) 命令,因此 x=Ab 等效于
3、x=pinv(A)*b.如果方程數(shù)目小于未知數(shù)個數(shù), 應該有無窮個解,用 x=Ab 命令得出的解只是其中的一個解,而用 pinv(A)*b 命令得出的解則比較粗糙,沒有用 x=Ab 命令得出的解精確。)如果A 是一個列滿秩矩陣(矩陣的秩等于列數(shù)),那么此最小二乘解x=Ab 是唯一能使norm(A*x-b) 最小的解。如果A 不是一個列滿秩矩陣,那么此最小二乘解norm(A*x-b) 最小的解應該是x=pinv(A)*b )。inv(A) 要求 A是方陣, pinv(A) 則不要求 A 是方陣bool2s:將布爾矩陣轉(zhuǎn)化為0、1 矩陣x=Ab不能使norm(A*x-b)最小,使調(diào)用格式: boo
4、l2s(x)參數(shù): x 是一個布爾向量或者布爾矩陣或者常數(shù)矩陣。說明:如果 x 是一個布爾矩陣, bool2s(x) 返回一個 0、 1 矩陣, 1 代表真, 0 代表假。如果x 是一個普通矩陣, bool2s(x) 也返回一個 0、1 矩陣, 1 代表非 0 的數(shù)字。boolean :它表示 Scilab 對象或者布爾型變量和操作符與或非 & | 說明:布爾型變量為 %T(代表真) %F (代表假 ) 。這些變量可以用來定義矩陣。布爾型型矩陣可以像普通矩陣操作,如元素的抽取、插入與連接,但不能進行如( +, *, -, , )等運算,布爾型型矩陣有三個特殊的操作符號:與或非&
5、 | brackets括號:包括左右圓括號 () ,左右方括號 .方括號調(diào)用格式: a11,a12,.;a21,a22,.;.圓括號調(diào)用格式 : s1,s2,.=func(.)參數(shù) a11,a12,. :任何合適的矩陣( 實數(shù) ,參數(shù) s1,s2,. :任何變量名 ;多項式 ,有理數(shù)等);說明: 用于向量定義或者矩陣連接或者用在調(diào)用函數(shù)的左邊存儲變量,而()用于函數(shù)調(diào)用。 在用于矩陣連接時,空格、逗號用來隔開每“行”中的元素,分號、回車則用來隔開各“行”。 用在調(diào)用函數(shù)的左邊存儲變量時,必須用逗號隔開個變量。break - 結(jié)束循環(huán)說明:在 for 或者 while 循環(huán)中, break 命令
6、強制結(jié)束循環(huán)試試看 k=0; while 1=1, k=k+1; if k > 100 thenbreak, end; endcall Fortran or C 用戶程序調(diào)入調(diào)用格式有兩種長型y1,.,yk=call("ident",x1,px1,"tx1",.,xn,pxn,"txn","out",ny1,my1,py1,"ty1",.,nyl,myl,pyl,"tyl")短型 y1,.,yk=call("ident",x1.,xn)參數(shù)說明:id
7、ent :字符串,代表所要調(diào)用的子程序的名字。Xi :實數(shù)矩陣或者字符串,代表輸入變量pxi,pyi:整數(shù),代表各輸入變量在調(diào)入 ident程序時的相對位置txi,tyi:字符” d” r ” “c” “i ”,代表輸入變量的數(shù)據(jù)類型,d 代表雙精度型, r 代表實型(浮點型), c 代表字符型, I 代表整型。Out:關(guān)鍵詞,用來格開輸入變量于輸出變量。當有Out 時, 表明是長型調(diào)入 , 而沒有 Out 是短型調(diào)入 .ny1, my1 是輸出變量的大小功能說明: call命令用于在 scilab 于調(diào)入 Fortran or C用戶程序,所要調(diào)入的程序應該預先與 scilab鏈接,鏈接的方
8、法如下:1. 軟鏈接 : 在 scilab 進程中使用命令 link 鏈接2. 硬鏈接 : 先用 scilab下已有的程序 (default/作為調(diào)入程序 , 再在文件 (default/Flist)中增加一個入口 , 然后再使用命令make bin/scilex與 scilab連接 .call 語句有兩種調(diào)用形式 , 長型與短型 . 短型調(diào)用語法簡單 , 能夠很快地編譯代碼 , 但必須寫一個小小的 C或者 F 接口程序 . 長型調(diào)用則不需要 , 但語法復雜 , 代碼解釋速度也比較慢 .例子 :C 語言case- 判斷語句的關(guān)鍵詞說明:用在選擇語句 select.case中的關(guān)鍵詞 :用法如下
9、 :select表達式 0case表達式 1then程序 1,case表達式 2then程序 2,.case表達式 3then程序 3,else程序 ,end例子 :while %t don=round(10*rand(1,1) namn該命令清除指定全局變量clearglobal('nam1', .,'namn')該命令清除指定全局變量其中 nam1 . namn 為有效的全局變量例子 :global a b ca=1;b=2;c=3;who('global')clearglobal bwho('global')clear -清
10、除變量調(diào)用格式 clear a說明 :這個命令用來清除不受保護的變量.cleara 清除指定變量 a, 而 clear 清楚所有不受 predef保護的變量 .正常情況下 , 受保護的變量是指標準庫程序和帶有百分號的變量, 如 %pi,%t 等.注意語法格式 . 是 clear a 而不是 clear(a).也要注意 a= 并沒有清楚 a, 而是把 a 置空 .colon - (:)冒號操作符說明 :該操作符可以用來生成 implicit vectors(不好翻譯 , 看下面的例子就明白了 )j:k 生成一個向量 j, j+1,.,k(如果 j>k 則為空集 ).j:d:k生成一個向量
11、j, j+d, ., j+m*d.該操作符可以用來挑選向量或者矩陣中的某一行, 某一列或者某一個元素A(:)是指 A 中的元素按從左到右從上到下的順序排成的一列 .A(:,j)是指 A 中的第 j 列元素 .A(j:k)是指 A(j),A(j+1),.,A(k)A(:,j:k)是指 A(:,j),A(:,j+1),.,A(:,k)A(:)=w是指用 w將矩陣 A 填滿 .comma - (,)列 , 指令與參數(shù)分隔符說明 :該操作符用來分隔函數(shù)中的參數(shù), 或者用來分隔單行矩陣中的列,空格也可以用來分隔單行矩陣中的列 , 但用逗號更加合適 . 另外也可以用來分隔指令 , 分號 ; 也可以用來分隔
12、指令 , 但不會將結(jié)果顯示在屏幕上 .例子 :a=1,2,3;4,5,6;a=1,b=1;c=2comments - 注釋注釋行以說明 :在 for 和 while 循環(huán)中 , 命令 continue 使程序轉(zhuǎn)向下一個循環(huán) , 而忽略該次循環(huán)中 continue語句和 end 語句之間的指令 . 例子 1:for k=1:10,K=k;if k>2&k<=8 then continue,disp('hello'),end,k,end例子 2:for j=1:2x=;for k=1:10,if k>j+1&k<=8 then continu
13、e,end,x=x,k;end xendDate 顯示當前時間命令調(diào)用格式: date 或者 date()或者 date ()或者 dt=date()說明: dt=date() 返回一個以格式dd-mmm-yyyy 表明時間的字符串。debug 調(diào)試級別調(diào)用格式: debug(level-int)或者 level-int=debug()參數(shù): level-int代表一個 0-4 的整數(shù)。說明:對于不同的整數(shù),代表了不同的調(diào)試級別。definedfields 返回列表變量中已定義元素的索引調(diào)用格式: k=definedfields(l)參數(shù): l 是一個列表變量(可以是 list , tlist
14、或者 mlist 類型), k 是返回的索引向量。說明:如果 l是一個列表變量 (list tlist mlist)那么 k=definedfields(l)返回的 k 是列表變量中已定義元素的索引 , 如果元素未定義,則返回一個錯誤信息。例子:l=list(1);l(3)=5k=definedfields(l)運行結(jié)果: k=1. 3. 5.符號調(diào)用格式:如 a.*b等說明:該操作符號可用來標志小數(shù)點,如和,還可以用來和其他符號組成運算符,比如,可以和(*/')組成(.*,.,./,.,.')運算符,比如 C=A./B 表示 c(i,j) =a(i,j)/b(i,j),克乃內(nèi)
15、克乘積為“ .*. ”。注意當 (.)符號緊接著一個數(shù)字時,它總是表示這個數(shù)字的小數(shù)點,比如說 2.*x 就表示 *x ,而 2.*x則表示 (2).*x符號的另一個用法是當一行末尾有兩個或者兩個以上的小數(shù)點的時候就表示這一行沒有完成,有待繼續(xù)。do - 循環(huán)語句的關(guān)鍵詞一般與 while 連用,也可用 for 語句中 elseif :if-then-else 語句中的關(guān)鍵詞else : if-then-else語句中的關(guān)鍵詞empty - ()空矩鎮(zhèn)陣符號 產(chǎn)生一個空矩陣,它的定義很特別,0 行 0 列,也就是說 size() =0,0.根據(jù)該屬性就有下面的結(jié)果:*A=A*=+A=A+=A,
16、A=A,=Ainv() =det()=cond()=rcond()=1, rank()=0當沒有明顯的答案時,矩陣運算返回空集 或錯誤信息。注意,空的線性系統(tǒng)(linearsystems,)可能有幾行或者幾列。例子:s=poly(0,'s'); A = s, s+1;A+, A*A=rand(2,2); AA=A(,1), size(AA)end - 關(guān)鍵詞用在循環(huán)語句和條件語句的末尾, for, while, if, select必須用 end 來中止。equal - (=)賦值與比較符號=用于把值賦給變量a=b 則表明表達式 a 與表達式 b 相等。對于矩陣對象來說:如果
17、a 與 b 是同類型的矩陣,而且維數(shù)也相同,那么 a=b 會逐一比較對應元素,最后返回一個相同維數(shù)的布爾型矩陣。如果 a 與 b 是同類型的矩陣,但 a 或 b 中有一個的維數(shù)是 1*1 ,即只有一個元素,那么就將該元素逐一與另外一個矩陣中的元素比較,最后返回一個布爾型矩陣。其他情況的比較結(jié)果全部返回布爾型變量%f。對于 list列表對象來說:如果 a 與 b 是大小相同的列表,那么 a=b 會逐一比較對應元素,結(jié)果返回一個單行的布爾型向量。如果 a 與 b 是大小不同的列表,那么結(jié)果返回布爾型變量%f。對于 tlist和 mlist列表對象來說:如果沒有定義過載函數(shù),那么操作與 list 列
18、表一樣對于其他對象 ( 函數(shù),庫 .) 來說:如果對象相同則返回 %t,其他情況則返回 %f.不同數(shù)據(jù)類型之間的比較返回%f.例子:a=sinu,s=schur(rand(3,3)1:10=41=2errcatch -錯誤信息捕獲命令調(diào)用格式:errcatch(n ,'action' ,'option')errcatch()參數(shù):n :整數(shù)action, option :字符串說明: 當類型為 n 的錯誤發(fā)生時, errcatch如果 n>0,n 就是捕獲的錯誤類型號;如果 n<0, 表示所有類型的錯誤都會被捕獲;給出一種行為(error-handl
19、er)讓計算機執(zhí)行。action "pause"是以下字符串之一:當計算機捕獲這個這個錯誤就執(zhí)行暫停,這對調(diào)試很有用??梢杂脀hereami()獲得當前環(huán)境的信息。"continue",忽略當前命令,繼續(xù)執(zhí)行下一行命令或可執(zhí)行文件??梢杂胕serror函數(shù)檢查時候有錯誤發(fā)生。別忘了盡可能用 errclear 函數(shù)清楚錯誤。這個選項對于恢復錯誤很有用。在許多情況下,可以用 execstr函數(shù)來代替 errcatch(n,"continue",.)。"kill":默認模式,所有的中介函數(shù)都被終止,scilab回到最高層
20、提示符界面。"stop":中斷當前 scilab進程,當 scilab被外部程序調(diào)用時這個命令很有用。option是 'nomessage' 字符串,用來終止所有錯誤信息。為了返回默認模式,可以輸入 errcatch(-1,"kill") 或者 errcatch(-1) ,errcatch() 是一個舊命令,等效于 errcatch(-1)備注:errcatch()命令是一個舊命令,可以用try命令或者execstr(.,'errcatch')代替errcatch.errclear -錯誤清除命令調(diào)用格式: errclea
21、r(n)說明:清除與錯誤類型n 對應的行為 (error-handler)。如果 n>0,n 就是所被清除的錯誤類型號;如果 n<0, 表示所有類型的錯誤都會被清除(默認);error_table -錯誤信息表說明:這一頁列出預先定義的錯誤信息表, 以及它們對應的序號。其中一些錯誤信息是 Scilab 軟件自己的剖析器錯誤 (parser errors)或者特殊內(nèi)建錯誤 (specific builtin errors),其他的錯誤信息比較通用,可以 Scilab 函數(shù)中使用。帶 * 號的是語句 error(n,pos) 中句柄有關(guān)的。(表略) error - error mess
22、ages調(diào)用格式:error(message ,n)error(n)error(n,pos)參數(shù):message:一個字符串,要顯示的錯誤信息。n:整數(shù)。錯誤信息的序號。pos : 整數(shù)。錯誤信息的參數(shù)。說明:error 函數(shù)允許發(fā)布一個錯誤信息來處理錯誤,默認情況下error 函數(shù)停止執(zhí)行當前命令返回提示符界面。這個默認設置可以用 errcatch 或 execstr(.,'errcatch')函數(shù)更改。error(message) 顯示 message所代表的錯誤信息,與此錯誤信息對應的序號是10000error(message,n)顯示 message所代表的錯誤信息,與
23、此錯誤信息對應的序號是n,n 應該大與 10000error(n)顯示已預定義好了的錯誤信息,該錯誤信息的序號是n有一些預定義的錯誤信息要求有參數(shù),在這種情況下,必須用error(n,pos) 中的 pos 來指定參數(shù)值,在其他情況下, pos 參數(shù)可以不寫。etime -耗時調(diào)用格式:e = etime(t2,t1)參數(shù):t2 :是一個 6-10個值的向量t1 :是一個 6-10個值的向量e : t2與 t1 之間的秒數(shù)說明:當 t1 和 t2 都是含有 10 個值的向量時,他們的格式必須與getdate函數(shù)返回的格式一樣。在這種情況下, 它們的第三個,第四個,第五個值都被忽略。當 t1 和
24、 t2 都是含有 6 個值的向量時,他們的格式必須 Year Month Day Hour Minute Second格式一樣,其中秒可以精確到毫秒。t1 和 t2 必須大小相同, t1 和 t2 也可以是矩陣,但是該矩陣每一行都必須符合以上所述格式。例子:t1=2004 06 10 17 00 t2=2004 06 10 17 01 E1=etime(t2,t1)t1=2004 06 24 162 5 10 17 00 12 345t2=2004 06 24 162 5 10 17 01 13 965E2=etime(t2,t1)注釋:當當 t1 和 t22004 表示年份, 06 表示月份
25、,都是含有 10 個值的向量時,如24 表示周數(shù), 162 表示天數(shù),2004 06 24 162 5 10 17 00 12 3455 表示本周中的第幾天(以周日為第一,天),10 表示本月中的第幾日, 17 表示時, 00 表示分, 12 表示秒的整數(shù)部分, 345 表示秒的小數(shù)部分。 evstr - 計算表達式的值調(diào)用格式:H=evstr(Z)H,ierr=evstr(Z)參數(shù)Z :字符串矩陣 M或者列表 list(M,Subexp)M : 字符串矩陣Subexp :字符串向量H:矩陣ierr :整數(shù) , 誤差指示說明:該函數(shù)的運算結(jié)果返回字符串矩陣 M中表達的的計算結(jié)果。 矩陣的每一個
26、元素必須定義一個有效的 Scilab 表達式。如果對 M 中表達式的計算有錯,那么,對于返回一個值的表達式 H=evstr(M) 來說,它對錯誤不予理睬 (raises the error as usual);對于返回二個值的表達式H,ierr=evstr(M)來說,雖然顯示出錯,但會返回一個出錯序號給ierr 。如果 z 是一個列表, subexp 是一個字符串向量,用來定義子字符串,對這些子字符串的計算是在對 M的計算之前。這些子字符串必須要在 M中以 %(k) 的形式提及,其中 k 是字符串向量 subexp 中子表達式的序號。evstr('a=1')是無效語句,請用ex
27、ecstr代替。例子:a=1; b=2;Z='a','b'H=evstr(Z)ierr :整數(shù) , 0或者錯誤號 .msg :值為 'm' 或'n' 的字符串 . 默認值為 'n'.說明:該命令執(zhí)行由參數(shù)instr所給的指令。如果 'errcatch'沒有出現(xiàn),出錯處理照常進行。如果 'errcatch' 出現(xiàn)了,并且在執(zhí)行指令的過程中產(chǎn)生了錯誤, 那么 execstr 函數(shù)本身不發(fā)布出錯信息,但它會在出錯點上中斷執(zhí)行 instr 指令,并啟用錯誤號為 ierr 的出錯信息,在這種情
28、況下,出錯信息的顯示由 msg選項控制。"m":表示錯誤信息會顯示而且會被記錄。"n":不顯示出錯信息 , 但錯誤信息也會記錄 ( 參考 lasterror命令 ) ,這個是默認選項 .ierr=execstr(instr,'errcatch')可以處理語法錯誤。例子:execstr('a=1')當按回車之后又繼續(xù)執(zhí)行命令7 : 既又暫停,又有提示符,還會顯示出每一行命令,這對演示很有用途(7124)exec(fun ,mode)命令以腳本形式執(zhí)行函數(shù) fun ,沒有輸入變量,沒有輸出變量,也沒有特殊的變量環(huán)境。這種形式很
29、有效,因為腳本代碼可以被預編譯(參考getf, comp)。這種腳本運算方法允許在庫中以函數(shù)的形式存儲腳本。如果在執(zhí)行的時候遇到了錯誤,并且 'errcatch'標志出現(xiàn)了, exec 不會發(fā)布出錯信息,但它會中斷執(zhí)行指令,并啟用錯誤號為 ierr的出錯信息,如果 'errcatch'標志沒有出現(xiàn),標準的出錯處理照常進行。例子:mputl('a=1;b=2','c:/exam')exec('c:/exam')foo 返回一個值時,它就會被破壞,對比前后兩個whos-name "a " 所產(chǎn)生的結(jié)
30、果就可以知道whos -name "a "x=1exec(foo)'disp(exists(''a12''),exists(''a12'',''local'')''disp(exists(''x''),exists(''x'',''local'')')foo(1)a12=;foo(1)exit -結(jié)束當前 Scilab 進程說明:結(jié)束當前 Scilab進
31、程。external - Scilab對象,外部函數(shù)與對象說明:特殊命令下外部函數(shù)與程序。一個外部對象( external )就是一個用作高級命令(some high-levelprimitives)參數(shù)的函數(shù)或者程序,例如 ode , optim , schur等命令外部對象(函數(shù)或者程序)的調(diào)用次序是由高級命令設置相關(guān)參數(shù)來決定。例如:比如說外部函數(shù)costfunc就是高級命令optim的一個參數(shù),它的調(diào)用次序一定要如此:f,g,ind=costfunc(x,ind),然后高級最優(yōu)化命令optim 按以下方式調(diào)用:optim(costfunc,.)這里 costfunc 計算函數(shù)分 f (
32、x)的值和它在 x 點處的梯度( ind 是一個整數(shù),它的用處是使結(jié)果更加精確化)如果外部對象還需要其它值,這些變量可以在它的環(huán)境下定義,當然,他們也可以放在一個列表中。比如說,外部函數(shù) f,g,ind=costfunc(x,ind,a,b,c)。該函數(shù)對 optim 是有效的,不過得保證這個外部對象是一個列表list(costfunc,a,b,c),并且對 optim 調(diào)用格式如下:optim(list(costfunc,a1,b1,c1),.一個外部對象也可能是Fortran或者 C 程序,這對于提高運算速度有幫助。 這些程序的名字以字符串的形式傳給高級命令。程序的調(diào)用次序也是規(guī)定的,這方
33、面的例子在錄之下。外部 Fortran 或者 C程序也能夠被動態(tài)的調(diào)用。extraction -矩陣或列表元素的提取routines/default目調(diào)用格式x(i,j)x(i).=l(i).=l(k1).(kn)(i) or .=l(list(k1,.,kn,i)l(k1).(kn)(i,j) or l(list(k1,.,kn,list(i,j)參數(shù):x :各種類型的矩陣l :列表變量i,j :索引k1,.kn :索引說明:矩陣:i 和 j 可以實數(shù)標量,向量,或者正元素矩陣*r=x(i,j)命令建立一個矩陣r ,其中元素r(l,k)=x(int(i(l),int(j(k),其中int(i
34、(l)是取整命令,即取 i(l)的整數(shù)部分。到向量 j 的總個數(shù) size(j,'*'),注意 i 和)與列數(shù)( size(x,2)).例子:jl 的取值從 1 到向量 i 的總個數(shù)的最大值必須小于或者等于矩陣size(i,'*')x 的行數(shù)(,k 的取值從size(x,1)1x= ; ;.32 i=1:3 j=2:4 r=x(i,j) *;.47 如果 x 是一個 1x1 矩陣,那么的矩陣,而 rr=x(i)命令建立這樣一個矩陣r ,其中i必須是一個元素為1(l,k)=x(int(i(l),int(i(k),l的取值從1 到矩陣i的行數(shù)( size(i,1))
35、,k 的取值從1 到矩陣i的列數(shù)( size(x,2)例子:)i=1 1 1;1 1 1x(i)*如果 x 是一個行向量,那么 r=x(i)命令建立這樣一個向量 r ,其中 i 也是一個向量(如 i=1:3 ),r(l)=x(int(i(l),l 的取值從 1到向量 i 的總個數(shù) size(i,'*'), i的最大值必須小于或者等于向量 x的總個數(shù) size(x,'*') .x=i=1:3r=x(i)*如果 x 是一個多行多列的矩陣, 那么 r=x(i) 命令建立這樣一個列向量r ,i 也是一個向量(如i=1:7 ),r(l) (l的取值從 1到向量 i的總個數(shù)
36、 size(i,'*'),至于如何賦值,請參見例子 i 的最大值必須小于或者等于向量 x 的總個數(shù) size(x,'*') .x= ; ;.32 ; .47 i=1:7r=x(i)*(:)冒號代表所有的元素* r=x(i,:)建立一個矩陣 r ,其中r(l,k)=x(int(i(l),k), l 的取值從 1 到向量 i的總個數(shù) size(i,'*'),k 的取值從 1 到矩陣 x 的總列數(shù) size(x,2)x=;.32; .47 i=1:3r=x(i,:)* r=x(:,j)建立一個矩陣r ,其中 r(l,k)=x(l,int(j(k),l
37、的取值從 1 到矩陣 x 的總行數(shù) size(x,1),k 的取值從 1 到向量 j 的總個數(shù) size(j,'*').x=;.32; .47 j=1:3r=x(:,j)*r=x(:)建立一個列向量,這個列向量是按從左到右的順序把每一列串連起來組成的,它等效于 matrix(x,size(x,'*'),1) .- 布爾型向量 .如果索引變量 (i or j) 是布爾型向量,那么 scilab 執(zhí)行 find(i) 或者 find(j) 命令,找出其中的為真的序號,且看以下例子:x=;.32; .47 i=%t %t;%f %f;%t %t;%f %f;%t %t
38、;%f %ffind(i)x(i)- 多項式 .如果索引變量 (i or j)是多項式向量或者隱形多項式向量,那么scilab執(zhí)行 horner(i,m)或者horner(j,n)命令,其中 m和 n 與 x 的維數(shù)有關(guān),為了增加可讀性,我們建議使用$符號。例子Fortran調(diào)用的情況下, 函數(shù)f必須在子程序中定義( 在文件夾SCIDIR/routines/default中)例子 :deff('z=f(x,y)','z=x2+y2');feval(1:10,1:5,f)deff('z=f(x,y)','z=x+%i*y');fev
39、al(1:10,1:5,f)feval(1:10,1:5,'parab')feval(1:10,'parab')find -查找布爾型向量或者矩陣的元素索引調(diào)用格式ii=find(x ,nmax)i1,i2,.=find(x ,nmax)參數(shù)x :可能是一個布爾型向量,布爾型矩陣 ,布爾型超級矩陣 ,標準矩陣或者超級矩陣 .nmax : 返回一個最多的索引個數(shù) . 默認值為 -1, 代表搜索所有元素 . 這個選項對于避免搜索所有索引很有效 .ii, i1, i2, . :整型索引向量或者空矩陣.說明 :如果 x 是一個布爾型矩陣ii=find(x)返回值為真的元
40、素索引, 如果沒有元素值為真 , 則返回一個空矩陣 .i1,i2,.=find(x)返回索引向量 i1( 行) 與 i2( 列 ), 如果沒有符合條件的元素, 則返回一個空矩陣 .如果 x 是一個標準矩陣或者超級矩陣,find(x)則等效于 find(x<>0)find()返回 例子 :ExamplesA=rand(1,20);w=find(A<A(w)w=find(A>100)B=rand(1,20);w=find(B<,2)的語法是 :for variable=expression ,instruction, . ,instruction,end for va
41、riable=expression do instruction, ,instruction,end如果 expression 是矩陣或者一個行向量,那么 variable 依次取矩陣每一列的值有用的例子:for variable=n1:step:n2, .,end如果 expression 是一個列表變量,那么variable依次取列表中的元素。例子:n=5;for i = 1:n, for j = 1:n, a(i,j) = 1/(i+j-1);end;endfor j = 2:n-1, a(j,j) = j; end; afor e=eye(3,3),e,endfor v=a, writ
42、e(6,v),endfor j=1:n,v=a(:,j), write(6,v),endfor l=list(1,2,'example'); l,endfunptr - coding of primitives ( wizard stuff )(暫缺,高級用戶使用)getdate -獲得日期與時間信息調(diào)用格式dt=getdate()x=getdate("s")dt=getdate(x)參數(shù)dt :包含 10 個整型元素的向量x : 一個整數(shù),表示自 1970 年 1 月 1 日到某一天的秒數(shù)說明:dt=getdate()按以下格式返回當前的時間信息dt(1)
43、:年份從 0000 到 9999.dt(2):月份從 01到 12.dt(3):按 ISO 8601 標準計算的周數(shù)從01 到 53.dt(4):按古羅馬日歷計算的天數(shù)字從001 到 366.dt(5):周數(shù), 1 代表星期天 .dt(6):日數(shù)從 01到 31.dt(7):時數(shù)從 00到 23.dt(8):分數(shù)從 00 and 59.dt(9):秒數(shù)從 00 and 59.dt(10):毫秒數(shù) 從 000 and 999.x=getdate("s") 返回一個整數(shù),它表示自 1970年 1 月 1 日 00:00 UTC(Unix Time Convention) 以來所
44、經(jīng)過的秒數(shù) .dt=getdate(x)結(jié)合上面一句,運行一下這個命令就知道什么意思了:)例子:w=getdate()mprintf("Year:%d,Month:%d,Day:%d",w(1),w(2),w(6);x=getdate("s")getdate(x)getenv -獲得環(huán)境變量的值調(diào)用格式:env=getenv(str , rep )參數(shù):str :字符串,用來指定環(huán)境變量的值rep :可選字符串 .當使用了這個選項,函數(shù)getenv 沒有找到 str所指定環(huán)境變量,則返回 rep 的值env :字符串,包含了環(huán)境變量的值說明:返回已存在的
45、環(huán)境變量的值例子:getenv('SCI')getenv('FOO','foo')getfield -列表域的提取調(diào)用格式x,.=getfield(i,l)參數(shù)x :任何類型的矩陣l : list, tlist或者 mlisti :域索引 ,參考 extraction變量獲得更多細節(jié).說明:這個函數(shù)等效于 x,.=l(i) ,都是用來提取表中的域, 兩者唯一不同是前者可以用于 mlist 對象 .getpid -獲得 Scilab 進程號調(diào)用格式id=getpid()說明返回一個表示 Scilab 進程號的整數(shù)例子:d='SD_'
46、+string(getpid()+'_'getversion -獲得 Scilab版本信息調(diào)用格式version=getversion()version,opts=getversion()參數(shù)version :字符串opts : 一個包含四個元素的字符串向量 : compiler,pvm,tk,ocaml 例子:getversion()version,opts=getversion()global -定義全局變量調(diào)用格式global('nam1',.,'namn')global nam1 . namn參數(shù)nam1,., namn :有效的變量名字
47、說明:通常來講,每一個 scilab 函數(shù)都有自己的局域變量, 但 global 關(guān)鍵詞聲明的變量能夠在函數(shù)間相互使用,當一個函數(shù)改變了該全局變量,其他所有利用該變量函數(shù)都回受到影響。如果開始時全局變量不存在, 那么當你發(fā)布全局變量聲名的時候,它將初始化成一個空矩陣。b 被理解為 (123).b ,在這種情況下,點是操作符的一部分,而不是數(shù)字的一部分。host -執(zhí)行 Unix 或者 DOS的命令調(diào)用格式:stat=host(command-name)參數(shù):command-name : 含有 Unix sh命令的字符串stat :一個整數(shù)標志說明:發(fā)送一個字符串 command-name給 Unix 命令解釋器執(zhí)行( Unix 下是 SH,DOS下是),如果 host 沒有被調(diào)用,則 stat 返回 -1 ,否則命令解釋器代碼。例子:超級矩陣是mlists: mlist('hm','dims','entries',sz,v),其中sz行向量而v 是列向量。例子:a(1,1,1,1:2)=1 2a=1 2;3 4;a(:,:,2)=rand(2,2)a(1,1,:)a ahypermat -對 N維的矩陣進
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自助取款機ATM市場分析及投資價值研究報告
- 天然麝香產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 蠟燭盤市場分析及投資價值研究報告
- 快餐店服務行業(yè)經(jīng)營分析報告
- 嬰兒用奶嘴式喂輔食器產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 自動駕駛送貨機器人市場發(fā)展前景分析及供需格局研究預測報告
- 頭發(fā)造型用制劑產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 噴霧粉筆產(chǎn)業(yè)鏈招商引資的調(diào)研報告
- 眉粉細分市場深度研究報告
- 蛀牙預防劑市場發(fā)展前景分析及供需格局研究預測報告
- 電視攝像PPT教案
- 家裝業(yè)務培訓(共60頁).ppt
- 消防器材知識講解(課堂PPT)
- 英語教學中讓學生當“小老師”的嘗試-精選教育文檔
- 機械密封工作原理演示版
- 血氣分析全解ppt課件
- 二年級 Thelifeofabutterfly蝴蝶的生長過程
- 入網(wǎng)申請表模板
- 48個國際音標對應的字母組合及例詞(WORD可打印版)
- 安裝工程質(zhì)量通病及消除通病措施(安八)
- 標化工地安全文明施工管理細則
評論
0/150
提交評論