2014年4月23日 星期三

在命令提示字元環境下使用GCC


對於linux使用者來說,使用文字介面編譯是比較舒適的一件事情 ,但有時仍免不了要在windows環境下來寫程式,這時如果能在windows內建的命令提示字元中編譯那就太棒了。

要在windows的命令提示字元中使用gcc並不會太過複雜,我們需要的是安裝好Mingw這套軟體,並且修改windows下的環境變數 PATH 即可。


首先,到wiki中搜尋 Mingw,並進入該條目
http://zh.wikipedia.org/wiki/MinGW

拉到下面,找TDM-MinGW GCC 這個版本
 
 接下來是一連串的安裝動作,鏡站可以選擇台灣,會比較快


到此已經安裝完畢,但我們仍須改變環境變數,否則CMD無法自動幫我們找到GCC這編譯器



在環境變數的尾端加上你剛剛安裝的路徑,預設是C:\TDM-GCC-64\bin,記得在這串位置之前必須要有一個半形分號「;」,以隔開其他環境變數。

至此已經可以直接在CMD中使用GCC了

2014年4月12日 星期六

[python] 命令列參數 argv argc[] in python

 

在C語言中,argv 和 argc[] 這兩個命令列的參數相當常使用,主要用於引入外界的變數,可以動態的為程式配置不同的變數,節省修改程式再編譯的時間,相當方便

python也提供相同的功能,使用方式如下:

import sys
for i in range(len(sys.argv)):
    print "i=\t",i," argv=\t",sys.argv[i]
print “argc=\t” ,len(sys.argv)

這裡的sys可以視為一個物件,而argv則是sys的一個方法,可以顯示其中存有的元素這樣

[python] 資料輸出輸入方法

在科學計算上經常會使用的檔案的輸出以及輸入,在這方面python提供了一些功能可以使用

過去我會使用open函數,使用方式如下:

fi=open('workfile', 'r') ##讀取模式
fo=open('workfile', 'w') ##寫入模式
python提供兩種方式存取檔案,而打開檔案以後,存檔的方式更是相當簡單,例如以下為存檔

fo.write( string ) ##輸入的格式為字串
當然,寫入時的字串也可以經過格式化再輸出,像是以下輸出 1 2為例

fo.write(“%d\t%d” % (1,2))
則可以輸出 1 2至檔案中,相關的格式化方式和C很類似
而讀取的方式也很簡單

fo.read(字元數)
fo.readline() 
基本上是比較常用後者,因為這可以搭配string的一個方法 split 來切斷陣列
假設目前有一個檔案 data.dat 如下:

1  1.1
2 1.2
3 3.3
則讀取這個陣列使用方式如下:


x=[]
y=[]
fo=open("arr.dat")
while 1:
        line=fo.readline()
        if line=="":
                break
        line=line[:len(line)-1].split("\t")
        x.append(line[0])
        y.append(line[1])


以上是一般情況下讀取檔案的方法,然而在科學計算上,python提供了一組更加強大的工具包:numpy
在這函式庫中,也有一組主管檔案輸出輸入的函式──loadtxt 和 savetxt,可以直接輸出輸入在numpy中所定義的矩陣,使用方式如下:


from numpy import loadtxt,savetxt,zeros
arr=loadtxt("arr.dat")
x=zeros((len(arr),1))
y=zeros((len(arr),1))
data=zeros((len(arr),2))
for i in range(len(arr)):
        x[i]=arr[i][0]
        y[i]=arr[i][1]
        data[i][0]=x[i]
        data[i][1]=y[i]
savetxt("arr2.dat",data)