2012年4月22日 星期日

永遠沒有錯誤的程式,只有錯誤的人腦 . . .

一個小錯誤,然後花了一整個下午找

怎麼跑結果都不對,讀檔函式重寫

數據重建,迴圈檢查到翻 . . .

方法重新在用過,檢查工具 已經看到要眼花

一直找不到合理的解釋,一再放函式進去跟設計追蹤變數進去

怎麼找都找不對,數據都很合理,可是結果跟圖形就是不對

最後,是自己的函數變數沒有管理好,city   當作是cityxy

是Function 底下的引用變數,搞混了

資料格式不對,

city 三個欄位  citynumber,x,y

cityxy兩個欄位 x,y

白爛的我,最後躺在床上發呆十多分鐘,又回來找bug

原來是這個引用變數  囧 . . . .


上次寫的方法花了一百多行

這次只用了 五十多行,省下 一半

算是有進步
------------------------------------------------------

a 280    題庫,我花了大半的時間寫相容性的問題

結果,a280 題庫資料本身是精密小數,在數值運算上

程式吃不了 . . . . .  糗了 .  . .. .

在數據正規化的部份還有待加強 . .


http://www.wretch.cc/blog/xoop/2109662
http://baike.baidu.com/view/1117099.htm
http://blog.csdn.net/kujiangzhu/article/details/1342851
http://www.cnblogs.com/sprite_bx/archive/2010/03/25/1694887.html
http://www.sciencedirect.com/science/article/pii/S0957417412000176


Matlab 函式表:http://sparc.nfu.edu.tw/~shchen/matlab.htm

Matlab心法: http://web.ntpu.edu.tw/~ccw/statmath/M_loop.pdf

2012年4月17日 星期二

Matlab 陣列變數放法

HandBook:
http://www.cc.ntut.edu.tw/~jcjeng/Matlab_basic.pdf
http://sparc.nfu.edu.tw/~shchen/matlab.htm
>> test =[]
>> test1= [] ,test2= [] ,test3=[]
>> test=[test1 ;test2 ;test3]
>> test1=111,test2=222,test3=333

Resolut

test= []

= __ =  WTF  ,為什麼test 裡面什麼東西都沒有呢??

最後還是要做一個  test=[test1 ;test2 ;test3]

才能把test 做一個更新的動作,要做一個

test=[test1 ;test2 ;test3]動態擺入的方式

應該是要用 PutIn () 之類的Method去實作一個動態擺入更新的方法才有辦法

要是沒有注意到的話,可能天真的我,會真的以為把test1 ,test2, test3 放值進去

test=[] 這個容器就什麼都OK了


>> test =[]
>> test1= [] ,test2= [] ,test3=[]
>> test=[test1 ;test2 ;test3]
>> test1=111,test2=222,test3=333
>> test= [test1,test2,test3]

Resolut

test=[111;222;333]

2012年4月13日 星期五

Matlab function

http://163.13.134.134/MATLAB/

1...........................
     function [mean,stdev] = stat(x)
            %STAT Interesting statistics.
            n = length(x);
            mean = sum(x) / n;
            stdev = sqrt(sum((x - mean).^2)/n);


2..........................
           function [mean,stdev] = stat(x)
           %STAT Interesting statistics.
           n = length(x);
           mean = avg(x,n);
           stdev = sqrt(sum((x-avg(x,n)).^2)/n);

           %-------------------------
           function mean = avg(x,n)
           %AVG subfunction
           mean = sum(x)/n;


Matlab function的奧義, 透過 stat(x)  function
偷渡了 兩個function mean,stdev 值
同時 在stat()底下又實做了兩個function

裡面順便又藏了function的實做,Function又有subfunction

還在想,要怎麼呼叫 Function.m 底下的  其他寫在同一檔案裡的SubFunction

看來Matlab是沒有Function.Subfunction 這種寫法

不過也簡單俐落,直譯程式的優點

所以要是想要取得mean Fucntion的話

別無他法,只能透過主function 去偷渡你要得Function值出來或是做你要得Function

這種方式管理區域變數全域變數乾淨俐落


function a()
aa=1

function b                          
bb=2

function c
cc=3

---------
輸出  aa=1

bb cc 消失的無影無蹤

至於

         
function [mean,stdev] = stat(x)

在 function[]  裡面放  mean,stdev 這兩個值˙還真是有深奧的意含

不能單單只在腳本上使用stat(x)

而是要 [mean,stdev] = stat(x)

才能把mean,stdev=兩個變數帶出來

不能單[mean]  或是 [stdev]





           ----------------------------
function b=a(x)

a(x)=x+1

           ---------------------------

這種寫法,還真是表現了matlab 好玩的地方 . . .

a(10)

a =     0     0     0     0     0     0     0     0     0    11



---------------------------------------------------------

 function [b,c]=a(x)


a(x)=x+1
b=a(x)
c=b+x




>> a(10)
ans =    11

[b,c]=a(x)

a =     0     0     0     0     0    0     0     0     0    11

b =    11
c =    21
ans =    11


切記!!   放進欄位  取出欄位!!!  要對應  程式不會自動判讀 字串
只認得 欄位順序

function [OO,XX]=a(x)

>> [OO,XX]=a(x)



----------------------------------------

2012年4月11日 星期三

Love U Matlab ~!!

最近要書報,翻起之前做過的小題目來報
所以又回去碰了一下Matlab ,要是沒有Matlab 提供的一系列小工具,我真的不知道要怎麼辦
Debug ,De 到死吧我看 . . . . .
題庫att48.tsp 











因為程度差,所以不敢跑太大的例子,加上要把 att48.tsp 裡面的資料格式做一個正規化的動作
所以我整個很俗辣的不敢先去寫正規化輸入的Function,先用手動建一個Tabel
光這個動作,我大概就花了快要兩個小時,中間鬼打牆很多次
先是把att48.tsp 做一個手動建表的動作,程式白癡輸入法

inital_count=rand(48,2);  % 開48個city () 裝 aat48 城市點
inital_count(1,:)=[6734,1453];
inital_count(2,:)=[7265,1268];
inital_count(3,:)=[7392,2244];
..
..
..
就降我就建了48個City 這倒是還好,要命的還在後面
在att48.opt.tour  是標準題庫中的最佳解
於是於手動輸入法的我,為了要驗證,也不得不再建一個表去呈現最佳解的排序

NAME : att48.opt.tour
COMMENT : Optimum solution  for att48  
TYPE : TOUR
DIMENSION : 48
TOUR_SECTION
1
8
38
31
44
18
7
28
6
37
19
27
17
43
30
36
46
33
20
47
21
32
39
48
5
42
24
10
45
35
4
26
2
29
34
41
16
22
3
23
14
25
13
11
12
15
40
9
-1
EOF
看似簡單的選取放入,於是開始我煉獄般的手動輸入












中間不知道鬼打牆了幾次,終於不厭其煩的耐心下,把資料輸入正確
跑出來的圖形也合理多了,不然之前像毛毛蟲的最佳解,我看拿去書報我應該
是準備扛去埋了,在一次證明 程式這東西,錯誤真的是發生在人身上
不會是程式壞掉或是工具出包的狀況,只有人的問題、語法的問題、不會用的問題
不會有程式本身的問題。
寫這篇最主要的原因是感謝,Matlab提供的工具 Data cursor 幫我找座標位址上的Bug~!! 鳩咪










不知道學弟看到這篇以後,會不會也開始寫日誌 . . . . . .

沒錯,說的就是你 . . .

2012年4月10日 星期二

西斯科

https://learningnetwork.cisco.com/thread/1862
https://supportforums.cisco.com/thread/2052315

Algorithm For Anything

國內教授:

楊昌彪 老師 高等程式設計與實作


http://kevingo75.blogspot.com/2009/03/blog-post_31.html

http://people.cs.nctu.edu.tw/~hank1985/wiki/doku.php?id=acm_code_list

程式碼集散地http://itgroup.blueshop.com.tw/jimwayne/programming?n=convew&i=174136

IDS: http://www.windowsecurity.com/articles/ids-part2-classification-methods-techniques.html

語言迷航 http://finalfrank.pixnet.net/blog/post/30255302


程序員:挑戰無處不在http://kb.cnblogs.com/page/139156/



窮極一生,不知能學上幾套功夫 . . . .