北太天元的關(guān)鍵字和一些用法
?中文的句號(hào)當(dāng)成英文的句號(hào),除非是放在單引號(hào)或者雙引號(hào)中的中文句號(hào), 如 3。2 會(huì)按照3.2 來解釋
i 和j 被當(dāng)成虛數(shù)的單位,如 1+3i 和 1+3j 表示的是同一個(gè)復(fù)數(shù)?
變量名或者函數(shù)名必須是以字母或者中文或者下劃線開頭,后面接的可以是任意多個(gè)
字母、中文、下劃線或者數(shù)字的組合, 例如 a123, _123, 我_123abc 等都是合法的變量名
或者函數(shù)名, 但是? 1abc 不是合法的變量名單引號(hào)有兩種作用: 一是共軛轉(zhuǎn)置(.'表示轉(zhuǎn)置), 二是用來表示字符矩陣(char mat)的開始
?? ? 如果A是變量(NAME), 則A'表示A的轉(zhuǎn)置的, 而A'this is a string' 會(huì)被識(shí)別為一個(gè)錯(cuò)誤的輸入
?? ? A'' 表示A的共軛轉(zhuǎn)置的的共軛轉(zhuǎn)置.
?? A.''表示A的轉(zhuǎn)置的共軛轉(zhuǎn)置.
?? ? 語(yǔ)句 A'=[5,6;7,8] 被認(rèn)為是錯(cuò)誤的, 因?yàn)?A' 是不能用作賦值等號(hào)的左值使用的。@? 獲取函數(shù)句柄或者定義匿名函數(shù)的, 例如 @sin 返回的是 內(nèi)置函數(shù)sin 的句柄
?? @(x) x+2; 是定義了一個(gè)匿名函數(shù)?| 邏輯或
? & 邏輯且 ?
|| 短路邏輯或,例如 (x>1) || (y > 1)? ,如果判斷了 x>1 為真, 那么y>1 將不再判斷,直接返回真?
&& 短路邏輯且, 例如 (x>1) && (y>1),? 如果判斷了 x>1 為假,那么 y>1 將不再判斷,直接返回假? ?? ~? 邏輯否
> 大于
< 小于 ~=? 和 != ; ?
??? 不等于, C語(yǔ)言用 !=, 而matlab 使用 ~=
?? 我們的做法也是兼容兩種習(xí)慣用法==? 相等
? >=? 大于或等于
?<=? 小于或等于
? ::? 域,例如 somenamespace::somefunction
? :?? a(:), 返回a的所有元素組成, a(1,:), 返回a的第一行的所有列,
??? ??? ?1:10 表示從1到10的等差數(shù)列,默認(rèn)公差是1,
?? ??? ?? 10:-3:2 表示從10到2的等差數(shù)列,其中公差是-3, 因此 10:-3:2 = [10 7 4]?? ??^ + - / \ * =? 冪 加號(hào),減號(hào),右除號(hào),左除號(hào), 乘號(hào),等號(hào)
?.+,? .- , .*,? ./,? .\, .^? 逐個(gè)單元的 加法,? 減法..? ?
? (? ), [ ], { }? 逗號(hào),分號(hào),
? ... 續(xù)行符
? ~ 占位符, 和邏輯否相同,但是用在 [~, m ] = func10(2,3) 這樣的語(yǔ)句中
? ++?? 和c語(yǔ)言中的++相同, m++ 表示 m = m +1, 但是返回值是增加1前的m
???????? ++m 表示? m = m+1, 然后返回值是增加1后的m--和c語(yǔ)言中的--相同
? if, else, elseif, while, switch case, otherwise, return, break
?function 用來定義函數(shù)
? end, 有兩種用法,一是? 和 if while switch function 等次配對(duì)表示返回
???? 第二中用法是 a(end) 表示a的最后一個(gè)元素,還有 a(1,end) , a(end-2, 1)等用法for, continue
do
? inline (暫時(shí)沒有實(shí)現(xiàn),但是列入了關(guān)鍵字列表)
? exit? quit 都表示退出北太天元程序
% 百分號(hào)注釋,不需要放在行首
if = 3 這樣的賦值操作是無效的,但是目前還沒有額外的警告給用戶,
??? sin 是一個(gè)內(nèi)置函數(shù),但是 sin? =3 這樣的賦值是有效的,但是此時(shí)sin這個(gè)內(nèi)置函數(shù)就無法使用了; 有兩種用法,一是用作命令語(yǔ)句后方來抑制輸出,另外是 [ 1,3 ; 4, 4] 這樣的分號(hào)
B.' 表示B的轉(zhuǎn)置(注意不是共軛轉(zhuǎn)置)
/* 表示多行注釋的開始, */ 表示多行注釋的結(jié)束, 這和c++語(yǔ)言的多行注釋相同,
單引號(hào)之間的是char mat, 例如 'this is a char mat'
? 雙引號(hào)之間的是 string, 例如? "this is a string"
? 'this is a char mat, and " is a char in this char mat'? 這里的" 被當(dāng)成char mat中的
一個(gè) char"this is a string, and ' is a part of this string", 這里的 ' 被當(dāng)成 string 內(nèi)的一部分。
? 'a char mat contais a '', using two danyinhao'? 如果char mat 中要含有單引號(hào),可以使用 ''
? "this is a string contains "", using two shuanyinhao"
也可以使用 \' , \" 來轉(zhuǎn)義
其他的轉(zhuǎn)義字符:? \n 表示換行符, \t 表示水平制表符, \v 表示vertical tab, \f 表示form feed, ? \b 表示backspace, \a 表示bell, \\表示反斜杠