第一篇:Perl軟件學習心得
Per l 不需要任何特別的文件名字或后綴名,但最好不要使用后綴名
在 Perl 中,注釋由# 開始,如果文本的第一行前兩個字符是“ #!”,接著的就是執行下面文件的程序。#!行和程序的可移植性相關,需要找到每臺機器的存放地點。幸運的是,通常都被放在/usr/bin/perl或/usr/local/bin/perl中。
如果不是這樣,則需要找到你自己機器上perl的存放地點,然后使用那個路徑。
Perl 中不需要聲明變量
Perl 內部沒有整數值。程序中的整數被當做等價的浮點數來處理.八進制以 0 開頭,十六進制以 0x 開頭,二進制 0b 開頭。在十六進制中 A 到 F(或者 a 到 f)分別表示 10 到 15.Perl 允許用下劃線來分隔61298040283768,因此可以像下面這樣書寫:61_298_040_283_768加(+),減(-),乘(*),除(/)模數運算符(%)。10%3 的值是 10 除以 3 的余數。兩個操作數首先變成它們對應的整數值,如 10.5%3.2 轉換為
10%3◆后再計算兩個*號表示,如 2**3,表示 2 的 3 次方.由小寫的字母 x 表示。這種操作能把操作符左邊字符串重復操作符右邊數字那么多次。
use warnings一直都需要警告(warning),可以在 #!這一行加上-w,如:#!/usr/bin/perl – w 當程序中包含可能的錯誤時,可以要求 Perl 警告你
把 use diagnostics 加入程序后通過它可以看到更詳細的警告信息
標量變量的名字由一個美圓符號($)后接 Perl 標識符:由字母或下劃線開頭,后接字母,數字,或者下劃線。或者說由字母,數字和下劃線組成,但不能由數字開頭。大小寫是嚴格區分的。
每一個二元操作符都有一個等價的二元賦值形式:由這個符號后接等號組成。例如,下面兩行是等價的:
$fred = $fred + 5;# 沒有用二元賦值操作符 $fred+=5;#利用二元賦值操作符 下面的也是等價的: $barney = $barney*3;$barney*=3;上述兩例中,變量借助自身而非別的變量來改變自身的值。另一個常用的賦值操作符是字符串連接符號(.);其賦值形式為(.=): $str = str.“”;#$str后接空格 $str.=“”’;#同上
$mean = “ brontosaurus steak”;
$barney = “fred ate a $meal ”;#$barney 現在是“fred ate a brontosaurus steak” $barney = ‘fred ate a’.$meal;#同上
如果一個變量未被賦值,則將使用空值替換$barney = “fred ate a $meat ”;#$barney 現在是“fred ate a ”
在字符串中變量前($符號前)加上反斜線(),變量將不會被內插(替換): $fred = ‘ hello’;
print “ The name is $fred.n”;#打印出美圓符號,變量不會被其值替換 print ‘ The name is $fred’.“ n”;# 同上
花括號({})。用花括號將變量名括起來。或者將字符串分隔成幾個部分,再用連接符(.)串起來:
$what = “ brontosaurus steak ”;$n = 3;print “fred ate $n $whats.n”;# 不是 steaks,而是$whats的值 print “fred ate $n ${what}s.n”;# 現在是使用變量$what print “fred ate $n $what”.“ s.n”;#另一種方法
print ‘fred ate ’.$n.‘’.$what.“ s.n ”;#一種復雜的方法
35!= 30+5 #false 35 == 35.0 #true ‘35’eq‘ 35.0’ #false(按照字符串比較)‘fred’ lt ‘barney’ #false ‘fred’ lt ‘free’ #true ‘fred’ eq ‘fred’ #true ‘fred’ eq ‘Fred’ #false ‘’gt ‘’ #true
if($name gt ‘ fred’),print “ ‘ $name’ comes after ‘ fred ’ in sorted order.n”;}else{ print “ ‘ $name’ does not come after ‘ fred’.n”;print “ Maybe it’ s the same string, in fact.n”;}
$text = “ a line of textn”;#也可以由
chomp($text =
defined 函數,它將在為undef時返回 false,其余返回 true $madonna =
小寫的字母 x 表示。這種操作能把操作符左邊字符串重復操作符右邊數字那么多次: “fred”x 3 # “fredfredfred” 例子2.5將給出換行的事例
數組下標可以是任何能返回數值的表達式。如果其值不為整數,則自動將其轉換為小于它的最大整數值:$number = 2.71828;print $fred[$number100]’;#得到‘ bedrock’ , 第 0 個元素 $rocks[-200] = ‘ crystal’;# 嚴重錯誤(fatal error!)
數組是由括號括起來并且其元素由逗號分隔開的列表。(1,2,3)# 含有 1,2,3 的列表(1,2,3,)# 同上,最后一個逗號被忽略()# 空列表-0 個元素(1 ..100)# 包含 100 個整數的列表(1 ..5)#同(1,2,3,4,5)(1.7 .. 5 .7)#同上—最小值和最大值被轉換成整數(5 ..1)#空列表—..中的左值應小于右值,否則為空(0,2 .. 6,10,12)#同(0,2,3,4,5,6,10,12)($m ..$n)# 由$m 和$n 的值決定(0 .. $#rocks)#上節中有$#rocks 的介紹 用qw表示數組: qw!fred barney betty wilmadino!qw# fred barney betty wilmadino # #有些像注釋 qw(fred barney betty wilmadino)qw{fred barney betty wilmadino } qw[fred barney betty wilmadino ] qw
@giant = 1..1e5;#包含 100,000 個元素的表
@stuff =(@giant, undef, @giant);#包含 200,001 個元素的表
@rocks = qw / bedrock slate lava /;@tiny =();#空表
@giant = 1..1e5;#包含 100,000 個元素的表
@stuff =(@giant, undef, @giant);#包含 200,001 個元素的表 @copy = @quarry;#將一個數組中的值拷貝的另一個數組中
pop 操作將數組的最后一個元素取出并返回: @array = 5..9;$fred = pop(@array);#$fred得到 9,@array 現在為(5,6,7,8)$barney = pop @array;#$barney gets 8, @array 現在為(5,6,7)pop @array;#@array 現在為(5,6)(7 被丟棄了)
pop 相反的操作是 push,它可以將一個元素(或者一列元素)加在數組的末尾: push(@array,0);#@array 現在為(5,6,0)push @array,8;#@array 現在為(5,6,0,8)push @array,1 ..10;#@array 現在多了 10 個元素 @others =qw/9 0 2 1 0 /;push @array,@others;#@array 現在又多了 5 個元素(共有 19 個)push 的第一個參數或者 pop 的唯一參數必須是數組變量。
unshift和
shift 對一個數組的開頭進行操作(數組的左端有最小下標的元素)。下面是一些例子: @array = qw# dinofred barney #;$m = shift(@array);#$m 得到“dino” , @array 現在為(“fred” , “ barney”)$n = shift @array;#$n 得到”fred” , @array 現在為(“ barney”)shift @array;#@array 現在為空
$o = s hift @array;#$o 得到undef, @arry仍為空 unshift(@array,5);#@array 現在為(5)unshift @array,4;#@array 現在為(4,5)@others = 1..3;unshift @array, @others;#array 現在為(1,2,3,4,5)
@rocks = qw{flintstone slate rubble };print “ quartz @rocks limestone n ”;# 輸出為 5 種 rocks 由空格分開
$email = “ fred@bedrock.edu”;#錯誤!將會替換@bedrock $email = “ fred@bedrock.edu”;#正確
$email = ‘ fred@bedrock.edu’;# 另一種方法
只有一個元素的數組的被其值替換的行為和你預期的類似: @fred = qw(hello dolly);$y = 2;$x = “ This is $fred*1+’ s place”;# “ This is dolly’ s place” $x = “ This is $fred[$y-1]’ s place”;# 同上
@fred = qw(eating rocks is wrong);$fred = “ right ”;#我們將打印“ this is right[3] ”
print “ this is $fred[3] n ”;#打印出“ wrong”使用 $fred[3] print “ this is ${fred}[3] n ”;# 打印出“ right”(由花括號分開)print “ this is $fred”.“ [3] n”;#正確(兩個字符串,右.分開)print “ this is $fred [3] n”;# 正確(利用反斜線轉義)
foreach從列表的第一個元素一直循環執行到最后一個元素,一次迭代一個:
foreach $rock(qw/ bedrock slate lava /){print “ One rock is $rock.n”;#打印出 3 種 rocks
reverse(逆轉)操作將輸入的一串列表(可能是數組)按相反的順序返回 @fred = 6 ..10;@barney = reverse(@fred);# 得到 10,9,8,7,6 @wilma = reverse 6 .. 10;#同上,沒有使用額外的數組 @fred = reverse @fred;#將逆轉過的字符串存回去
sort 操作將輸入的一串列表(可能是數組)根據內部的字符順序進行排序 @rocks = qw/ bedrock slate rubble granite /;@sorted = sort(@rocks);#得到 bedrock, granite, rubble, slate @back = reverse sort @rocks;#為 slate 到 bedrock @rocks = sort @rocks;#將排序的值寫回@rocks @numbers = sort 97 .. 102;# 得到 100,101,102,97,98,99
標量和列表上下文
+ something #something 必須是標量 sort something #something 必須是列表
如果 something 是相同的字符串,在一種情況下,它返回一個變量值,在另一種情況下,它可能返回列表◆。Perl 中的表達式將根據其 context 返回適當的值。
在列表 context 中,它返回反轉的列表。在標量 context 中,返回反轉的字符串(或者將反轉的結果串成一個字符串):
@backwards = reverse qw / yabbadabba doo /;# 返回 doo, dabba, yabba $backwards = reverse qw/ yabbadabba doo /;# 返回oodabbadabbay
函數 scalar它不是一個真實的函數因為其僅是告訴 Perl 提供一個標量 context: @rocks = qw(talc quartz jade obsidian);print “ How many rocks do you have?n”;
print “ I have ” , @rocks, “rocks!n”;# 錯誤,輸出 rocks 的名字 print “ I have ” , scalar @rocks, “ rocks!n ”;#正確,輸出其數字
@lines =
所有的 Perl 子程序都會返回值,在 Perl 中返回值和不返回值是沒有區別的。當 Perl 遍歷此子程序時,將會計算每一步的值。此子程序中最后計算的值將被返回。最后一個被計算的表達式是 print 語句。其返回值通常為 1。用my創建私有變量。使用 my 創建新的,私有數組:my @phone_number。sub max { my($m,$n);#新的,私有變量($m,$n)= @_;#賦值 if($m > $n){$m} else{$n} } my($m,$n)= @_;
hash看作一堆數據(a barrel of data),每一個數據都有一個相應的標簽。可以通過標簽(key)訪問此標簽對應的元素(value)$hash{$some_key} $family_name, “ fred”= “ rubble”;
$family_name{“fred” } = “astaire”;# 將新值賦給已經存在的元素
$family_name{ “wilma” } = “flintstone”;#新增一個 key(也包括 value)$family_name{ “ betty” }.= $family_name{“ barney ” };#創建一個新元素 $grantie = $family_name{“larry” };#沒有larry:得到undef %some_hash =(“foo”, 35, “bar”, 12.4, 2.5, “hello”, “wilma”, 1.72e30, “betty”, “bye n”);@array_array = %some_hash;%new_hash = %old_hash;將%old_hash展開成 key/value 的列表,再將其賦給%new_hash,其將 key/value 對一個一個加入的。%inverse_hash = reverse %any_hash;
my %last_name =(“fred” => “flintstone”, “dino” =>undef,“barney”=> “rubble”;“betty”=> “rubble”,);上面代碼中,很容易辨別出哪一個是 key,哪一個是 value。注意列表中最后一個逗號
my %hash =(“a” =>1, “ b”=>2, “ c ”=>3);my @k = keys %hash;my @v = values %hash;
my $count = keys %hash;#得到 3,是指有 3 個 key/value 對。
each 函數,它將返回 key/value 對的2元素列表。一般只在 while 循環中使用 each: while(($key, $value)= each %hash){ print “ $key => $valuen”;
}while 循環的條件表達式,這是在標量 context 中。列表賦值語句在標量 context 中返回的是元素的個數,在本例中,是2。
each 返回的 key/vlaue對,順序是混亂的(它其順序和 keys 和 values 函數返回的順序相同)。如果想將其按序排放,可以對它們排序(使用 sort),大致如下: foreach $key(sort keys %hash){ $value =$hass{$key};print “ $key => $valuen”;
#也可以不使用額外的臨時變量$value #print “ $key => $hash,key-n”;}
exists 函數,如果 hash 中存在此 key,則返回 true,這和 是否有對應的 value 無關: if(exists $books{$dino}){ print “ Hey, there’ s a libaray card for dino!n ”;}
delete 函數將某個給定的 key(包括其對應的 value)從 hash 中刪除。(如果不存在這個 key,則什么也不做;不會有警告或者錯誤信息。)my $person = “ betty”;
delete $books{$person};#將$person 的借書卡刪除掉
在雙引號的字符串中使用單個 hash 元素: foreach $person(sort keys %books){ if($books{$person}){ print “ $person has $books{$person} items n ” #fred有3個 } }
正則表達式,在 Perl 中通常被稱為模式(pattern):某個模板是否匹配某個字符串.某個給定的模式將這些字符串分成兩類:一類是能匹配的,一類是不能匹配的。
要匹配某個模式(正則表達式)和$_的關系,可以將模式放在正斜線(//)之間,如下: $_ = “ yabbadabba doo”;if(/abba/){ print “ It matched!n”;
}模式匹配通常返回 true 或 false,因此經常用在 if 或 while 的條件表達式部分
引入特殊字符的原因,它們被叫做元字符(metacharacters),在正則表達式中具有特殊的含義。點(.)是通配符,它可以匹配任何單個的字符,但不包括換行符(“ n ”)。因此,模式/bet.y/將匹配 betty。同時也匹配betsy ,bet=y , bet.y,或者說任意字符串后接 bet, 然后是任意的單個字符(不包括換行符),后接 y。如果只希望點(.)匹配句號,可以使用反斜線。這條規則對 Perl 正則表達式中所有元字符均有效:元字符前使用反斜線將使它變成普通的字符。反斜線是第二個元字符。如果需要真正的反斜線,需要重復使用兩個反斜線。
星號(*)表示匹配前一項0次或者多次。.* 將匹配任意多個任意字符(不含換行符)的字符串。加(+)的意思是可以匹配前面一項的一個或多個。問號(?),其含義是前面一個項出現一次,或者不出現。括號(())用來表示分組。例如,模式/fred+/ 能匹配上如fredddddddd,這樣的字符串,但這種字符串在實際中沒有什么用途。模式/(fred)+/能匹配上像fredfredfred這樣的字符串。
豎線(|),在這種用法中通常被讀作“或(or)”,意思是匹配左邊的或者右邊的。
字符類,是方括號[]中的一列字符,可以匹配上括號內出現的任意單個字符。它匹配一個字符,但這個字符可以是列中的任意一個。字符類前使用符號^將取此字符類的補集。也就是說,[ ^def ]]將匹配上這三個字符中之外的任意單個字符。[^n-z]將匹配上 n,-, z 之外的任何字符。
任何數字的類,[0-9],可以被簡寫為:d。w 被稱作“ word’字符:[A-Za-z0-9_]。
s 對于匹配空白(whitespace)將非常方便。它等價于[ f tnr ],其含 5 個空白字符:格式符(form-feed);制表符(tab),換行符,回車,以及空格符。使用[^ d] , [^ w], 和[^ s],其含義分別是,非數字的字符,非 word(記住我們對 word 的定義)的字符,和非空白的字符。也可以使用它們對應的大寫形式:D, W, S 來完成。[ dD],它的意思是任何數字,和任何非數字,則意指任何字符。
不區分大小寫:/I匹配 FRED 時,也能匹配上fred, Fred,可以使用修飾符 /i: print “ Would you like to play a game? ”;chomp($_ =
print “ In that case, I recommend that you go bowling.n”;}
匹配任何字符:/s
b,是針對單詞使用的。如/bfred b/可以匹配上單詞fred,但不能匹配frederick
符號^(脫字字符◆)表示在字符串的開頭進行匹配,而符號$則表示在結尾◆
只想要一個詞界錨定,當使用 / bhunt/ 將匹配上像 hunt , hunting , hunter,這樣的單詞,但不會匹配 shunt,而/stoneb/ 將匹配 sandstone, flintstone,而不能匹配上 capstones。非詞界錨定為B。它將在任何非b 匹配的點上進行匹配。因此,模式/bsearchB/將匹配 searches , searching, searched , 但不能匹配 search,或者 researching。
匹配上的那部分字符串將自動存儲在$&之中。$`中含有正則表達式引擎在匹配成功前所找到的變量,而$'為此模式還沒有匹配的剩余部分。
花括號({}),花括號中有 2 個數字,由逗號隔開,表示前面一項允許重復的次數。模式/a{5,15}/將匹配 5 個到 15 個 a 中的任意一個(包括 5,和 15)。星號(*)等同于{0,},表示 0 個或多個。加號(+)等同于{1,},表示 1 個或多個。而問號(?)則等同于{0,1}。
1.在此優先級表的最頂端是括號:(()),在分組和引用內存值的時候使用。括號內部的任何部分比括號外的部分結合更緊 密。
2.第二級是數量詞。這里有星號(*), 加號(+),問號(?)以及由花括號表示的數量詞,如{5,15}, {3, }, {5}等。它們通常 和前一項元素結合。3.第三級的是錨定和序列(sequence)。錨定包括(^)表明字符串的開頭,($)表明結尾,(b)詞界符,(B)非詞界符。序列(一
個元素緊接著一個元素)實際上是一種操作,雖然它沒有使用元字符。這段話的含義是一個單詞中的字母結合更緊密,就 像錨定緊貼字母一樣。
4.優先級最低的是豎線(|),表示或。由于其優先級最低,它通常將模式劃分成幾個部分。它在優先級最底端是因為我們希
望像|/fred|barney/ 里面的字母比或(|)結合更緊密。如果或(|)的優先級比序列的優先級更高, 那么,上述模式的含義是匹配fre, 接著是 d 或者 b , 然后是arney。因此,或(|)的優先級最低,字母序列的優先級要高些。s ///操作的則類似于“查詢并替換(search and replace)”。它將替換變量中◆模式所匹配上的部分:$_ = “ He’ s out bowling with Barney tonight.”;s/Barney/Fred/;#Barney 被 Fred 替換掉 print “ $_n”;
如果沒有匹配上,則什么也不會發生,此變量也不會有任何更改:s/// 會返回一個 Boolean 值。如果成功替換則返回 true ;否則返回 false。
修飾符/g 要求 s/// 將不相重疊◆的所有匹配上的部分都進行替換: $_ = “home, sweet home!”;s/home/cave/g;print “ $_n”;# “ cave, sweet cave!”;
全局替換的一個常用地方是將多個空格用單個空格替換掉:
$_ = “ Input data t may hav e extra whitespace.”;s/s+/ /g;#現在是“ Input data may have extra whitespace.”
s/^s+//;#將開頭的空白去掉 s/s+$//;#將結尾的空白去掉
除了/g 修飾符外◆,替換操作中還可以使用/i , /x, 和 /s,這些在普通的模式匹配中已經出現過的修飾符。
U 要求緊接著的均是大寫: $_ = “ I saw Barney with Fred.”;
s/(fred|barney)/U$1/gi;#$_ 現在是“ I saw BARNEY with FRED.”
要求后面的均為小寫:L:
s/(fred)|barney/L$1/gi;#$_現在是“ I saw barney with fred.”
split,它根據某個模式將字符串分割開。這對于由制表符分割開,冒號分割開,空白分割 開,或者任意字符分割開的數據是非常有用的◆。任何可在正則表達式之中(通常,是一個簡單的正則表達式)指定分離符(separator)的地方,均可用 split。@fields = split /separtor/, $string;split◆將模式同字符串進行比較,將由分離符所分隔開的子串作為列表返回回來 @fields = split /:/, “abc:def:g:h”;#返回(“abc” , “def” , “ g” , “ h”)可能得到空的元素,如果其中有兩個分隔符是連在一起的:
@fields = split /:/, “abc:def::g:h”;#得到(“abc” , “def” , “” , “ g” , “ h”)這里有一條規則:開頭的空元素會被返回,但結尾的空元素被丟棄◆空白/ s+/這個模式進行分割是非常常見的。在這個模式下,所有的空白等價于單個空格: my $some_input = “ This is a t test.n”;
my @args = split /s+/, $some_input;#(“ This ” , “ is” , “ a ” , “ test.”)默認時,split 對$_操作,模式為空白: my @fields = split;#同 split / s+/, $_;
join 函數將這些分割的部分組合成一個整體。join 函數類似于: my $result = join $glue, @pieces;join 函數的第一個參數是粘合元素(glue),它可以是任意字符串 my $x = join “ :” , 4, 6, 8, 10, 12;#$x 為“ 4:6:8:10:12”
在fred and barney went bowling last night 上使用/fred.+barney/ 進行匹配.+,它將匹配除了換行符之外的任意字符,次數大于等于一。但,由于加號(+)是貪婪的;它將盡可能的進行匹配。因此,它將匹配剩余的所有字符串
在fred and barney went bowling last night 上使用/fred.+?barney/ 進行匹配 不是使用加號(+), 而是使用非貪婪的數量詞 +?,它將匹配一次或 多次(加號的意思),但其匹配盡可能少的次數,而非盡可能多的次數
第二篇:C程序員精通Perl
C程序員精通Perl
本書幫助有C和C++背景的程序員學習和使用Perl語言。
全書共17章,探討了Perl語言的所有知識要點。既包括C程序員所熟悉的變量、數據結構、控制語句和子程序,又包括C中所沒有的報告編寫、文本表格操縱、CGI編程以及簡單數據庫接口,還講述了如何充分利用CPAN庫中廣泛的Perl模塊庫。
本書可作為C和C++程序員學習Perl編程的參考書。對于Perl語言的初學者,本書可以幫助他們了解C和Perl之間可比較、可結合特性。
第三篇:SPSS軟件學習心得(模版)
SPSS軟件學習心得
SPSS(Statistical Product and Service Solutions),名稱是“統計產品與服務解決方案”軟件。SPSS軟件的統計分析步驟:
(1)讀入數據文件,或直接建立SPSS數據文件,或調用其它類型的數據文件,如:Excel、純文本文件等;
(2)調用統計分析程式或模板;
(3)選擇變量,設定參數并運行;
(4)查看統計分析輸出結果。
SPSS的主要功能分為兩個方面:一個是對數據文件的建立和管理;另一個是提供了各種統計分析方法。對數據文件的建立和管理主要通過Data菜單和Transform菜單實現,可以對數據進行修改編輯、查找、排序、合并、分割、抽樣、加權、重新編碼、編秩、設定種子數及計算或轉換新的變量等多種功能;提供各種統計分析方法則是通過Analyze菜單實現.可以對數據集進行一般統計分析,如描述性統計、探索性分析、t檢驗、單因素和多因素方差分析、協方差分析、四格表和列聯表卡方檢驗、相關分析、線性回歸分析、非參數檢驗、生存分析等。
特點:不需編程,完全采用菜單和對話框的操作方式,絕大多數操作過程僅靠鼠標點擊即可完成,簡便易學,易于操作;具備完備的統計圖表制作功能,能繪制精美的統計圖表,并可以極其方便地對其編輯和修飾。
應用例子:如為了科學合理的評估和開發利用河北省土壤中水分,并在不同地區因地制宜的采取相應措施,選定了干旱指數、土壤質地和植被等指數,用層次分析法,計算出每個指標的權重,利用SPSS統計軟件,對河北省土壤水資源進行分類,細分為了8類,實現了有效合理地利用土壤水分。
第四篇:SPSS軟件學習心得
誤差理論數據處理分析
常見的統計軟件有SAS,SPSS,MINITAB,EXCEL等。這些統計軟件的功能大同小異,各有所側重。其中的SAS和SPSS是目前在大型企業,各類院校及科研機構中較為流行的兩種統計軟件。特別是SPSS,其界面友好,功能強大,易學,易用,包含了幾乎全部尖端的統計方法,具備完善的數據定義,操作管理和開放的數據接口以及靈活美觀的統計圖表制作。作為專業的統計軟件,SPSS感覺比EXCEL更豐富,也更準確。
從表1中分析,抗拉強度的極小值為67.89,極大值為80.36,均值標準誤差為0.86948,標準差為3,47793,方差為12.096。屈服強度的極小值為47.14,極大值為8.227。
表
2從表2中分析,回歸平方和為176.469,自由度為1,均值方差,176.469,顯著性為
497.056,殘差平方和為4.970,自由度為14,均值方差為0.355。
表
3從表3從分析,常數量B為12.514,非標準化系數的標準誤差為2.719,T值為4.602。標準系數使用版為0.986,T值為22.自變量的B值為1.196,非標準化系數的標準誤差為0.054,295。
表
4圖
1從散點圖可以看出,抗拉強度Y與屈服強度X大致呈線性關系。人們假設Y與X之間的內在關系是一條直線,這些點與直線的偏離是實驗過程中其他一些隨機因素的影響而引起的。
心得體會
在學習SPSS中必須學會的是“數據組織方式和數據測度”,這個對于那些學習信息的人容易理解,對文科出身的人不容易理解。但是這個問題對于初學者很重要。在實際使用SPSS時,就得按部就班地按照先定義變量,測調度,在錄入(導入數據),再分析。分析并不是整個流程。
在大二快結束的學習過程中參加了SPSS的課程學習,盡管我只是大略地學習,泛泛地接觸這門課程,但是對這門課的興趣很濃。參與這次實踐的經歷深刻改變了我對這門課的認識。我越發感到我需要這門課程,我必須掌握這門統計技術,分析方法。這就是社會的需求,學校的標準,也是個人發展得需要。
雖然只有幾周的學習時間,但我已經對該課程有了更多的了解,十分感謝黃璟老師講解的這門課,提供了這個平臺。理論加實踐,為不同基礎的學生提供了好的學習環境。我認為開設很有必要,應當成為重點。
現實生活中的數據多不勝數,但要得到有用的數據并不容易,這就要應用數據分析的方法確定數據的屬性,再用清理工具(清洗、集成、轉換、消減)進行篩選轉化為有用的信息,再用SPSS深入分析,得出規律。
對數據的分析是以統計學為基礎的,統計學提供了一套完整的科學方法論,統計軟件則是實現的手段,統計分析軟件具有很多有點。它功能全面,系統地集成了多種成熟的統計分析方法;有完善的數據定義、操作和管理功能;方便地生成各種統計圖形和統計表格;使用方式簡單,有完備的聯機幫助功能;軟件開放性好,能方便地和其他軟件進行數據交換。我們接觸最多的統計軟件是EXCEL 和SPSS。在統計學中應用EXCEL,在數據分析中則主要是SPSS,它具有很好的人機界面和完善的輸出結果。
這門課程中我們學了另外一種數據分析方法就是聚類分析。它與“物以類聚,人以群分”是同樣的道理。多元統計分析方法就是對樣品或指標進行量化分類的問題,它們討論的對象是大量的樣品,要求能合理地按各自的特性也就是相似性來進行合理的分類,沒有任何模式可供參考或依循,即是在沒有先驗知識的情況下進行的。我們學習了Q型聚類法、R型聚類法以及系統聚類法。Q型聚類分析樣品間的聚類,用距離來測度親疏程度。R型聚類分析變量間的聚類,用相似系數來測度親疏程度。
常用的Q聚類法有閔氏距離和馬氏距離,只是我們必須掌握的。具體的計算方法有最短距離法、最長距離法、重心法、離差平方和連接法等等。在最后一節課老師講了貝葉斯理論,根據先驗概率和實驗事件得出后驗概率,從而得出更為可信的概率。最后,這門課程就學完了,學到了很,還有很多不懂。本課程需要很好的統計和概率論的基礎,要不,很難聽懂或者簡直聽不懂。同時,老師很少強求我們及時做作業,以至于我們知識掌握不牢固,前學后忘現象嚴重。有時候覺得老師講得過深,我們根本無法接受。希望老師以后講授本課程時把難度降低一點,多給學生練習的機會。我希望在考試之前把學懂的知識鞏固,把不懂得盡量弄懂,但愿以后在工作中能輕松運用。
第五篇:軟件編程學習心得
軟件編程學習心得
隨著計算機技術的發展和工作的需要,為了能夠更好的維護公司生產管理系統;公司安排我們到北大青鳥APTECH進修。我們選擇了時下最流行、發展速度較快的語言C#。C#學習共分三個階段,目前我只學習了第一個階段;現將我在北大青鳥學習第一階段為期兩個月的學習心得總結如下:
C#是一種新的面向對象的編程語言,專門用于.NET運行時。C#編譯器只能生成受管制的代碼,也可以使用.NET基類。C#語言自C/C++演變而來。但是,它具有簡單、現代、完全面向對象和類型安全等諸多特性。下面就簡單說說簡單和現代其中兩種特性。
1、簡單
C#具有C++所沒有的一個優勢就是學習簡單。該語言首要的目標就是簡單。很多功能(還不如說是缺少了C++的一些功能)有助于C#全方位的簡單。
在C#中,沒有C++中流行的指針。默認地,您工作在受管理的代碼中,在那里不允許如直接存取內存等不安全的操作。我想沒有C++程序員可以聲稱,從沒有使用指針訪問過不屬于他們的內存。
C#棄用其它操作符,名字空間、成員和引用僅使用單個操作符 “.”。現在一個程序員所需要理解的就是嵌套名字的注解了。
C#使用統一的類型系統。這種系統充許您把各種類型作為一個對象查看,它是一個原始類型還是一個full-blown 類。和其它編程語言相比,由于加框(boxing)和消框(unboxing)的機制,把簡單類型當作對象處理并不能獲得性能的改善。稍后將詳細解釋加框和消框,但基本上僅當需要時才使用對象訪問簡單類型這種技術。
2、現代
投入學習C#的努力是一筆大投資,因為C#是為編寫NGWS 應用程序的主要語言而設計。很多用C++可以實現或者很費力實現的功能,在C#中不過是一部分基本的功能而已。根據應用程序的特殊需求,可以很容易地創建出新的一種數據類型。
指針不再是編程武器的一部分。運行時NGWS提供了一個垃圾收集器,負責C#程序中的內存管理。因內存和應用程序都受到管理,所以很必要增強類型安全,以確保應用的穩定性。
異常處理是C#的主要功能。C#的異常處理與C++的不同點在于它是交叉語言的(運行時的另一個功能)。在沒有C#之前,您必須處理怪異的HRESULTs,但現在由于使用了基于異常的健壯的出錯處理,這一切都結束了。
對于現代的應用程序,安全是首要的,C#也不會例外。它提供了元數據語法,用于聲明下述NGWS安全模式的能力和許可。元數據是NGWS運行時的一個關鍵的概念。
通兩個多月學習,我能夠很好的掌握C#語言的基本語句、語法以及老師補充的一些要點;能夠編寫簡單的應用程序,例如電子郵件的收發等,為接下來的第二、第三階段學習打下了良好的基礎。