全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1860
推到 Plurk!
推到 Facebook!

請問:將text檔轉成矩陣

尚未結案
初入BCB
一般會員


發表:10
回覆:4
積分:2
註冊:2005-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-03-15 14:14:35 IP:61.61.xxx.xxx 未訂閱
請問: 要如何將一個text檔案轉成可以運算的矩陣?? 因為我從數學軟體中得到一組2維的數據並存成text檔 然後想在BCB裡面呼叫進來並且是要和其他的矩陣做運算 所以想要前輩們請教...
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-03-15 15:29:29 IP:61.66.xxx.xxx 未訂閱
你好 可以把你的TEXT檔的部分內容貼上來嗎 這樣別人比較好幫助你
初入BCB
一般會員


發表:10
回覆:4
積分:2
註冊:2005-03-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-03-15 17:48:54 IP:61.61.xxx.xxx 未訂閱
謝謝 blk5743 兄的提醒 一時之間忘記將text檔案貼上 在text檔中共有512*65個元素(在此僅取局部)    我也重整我的問題: 矩陣A從是要從Text檔呼叫進入BCB中 矩陣B可從BCB中Key in 最後矩陣C=矩陣A*矩陣B 目前就是卡在矩陣A要如何呼叫進入BCB中??? 發表人 - 初入BCB 於 2005/03/15 17:56:16
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-03-15 18:48:03 IP:61.66.xxx.xxx 未訂閱
請參考這一篇    http://delphi.ktop.com.tw/topic.php?topic_id=65375 【問題】有關檔案存取fopen fscanf fprintf...
初入BCB
一般會員


發表:10
回覆:4
積分:2
註冊:2005-03-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-03-16 09:52:13 IP:61.61.xxx.xxx 未訂閱
謝謝 blk5743 姐的指導 但是試了一整晚仍發現有些問題想跟請教    因為我是從數學軟體 Mathematica產生數值存成.txt檔 當我在BCB裡面呼叫進來並做矩陣相乘時卻發生ERROR錯誤 不知道是否跟space或是數值的位數有關 在進行5*5矩陣相乘時數值都對 但進行5*5以上的矩陣相成時卻會產生 "9.7025605752885E30"的結果    以下是我的code: #define m 6; #define n 6;    void __fastcall TForm1::Button1Click(TObject *Sender) {   FILE *fp1,*fp2;     float a[m][n];     float b[n][1];     float c[m][1];     int i,j;     //a matrix     ZeroMemory(a,sizeof(a));     fp1= fopen("out1.txt","r加");     for ( int i = 0; i < m; i加加 )     {         for ( int j = 0; j < n; j加加 )         {             fscanf(fp1, "%f", &a[i][j]);         }     }    fclose(fp1);    //Edit1->Text =FloatToStr(c[0][3]);     //b matrix     ZeroMemory(b,sizeof(b));     fp2 = fopen("out2.txt","r加");     for ( int i = 0; i < n; i加加 )     {         for ( int j = 0; j < 1; j加加 )         {             fscanf(fp2, "%f", &b[i][j]);         }     }  fclose(fp2);  //      int I,J,K;   for (I=0; I < n;I加加)    for (J=0;J < 1;J加加)     Memo1->Lines->Add(b[I][J]);      for (I=0;I < m;I加加)    for (J=0;J < n;J加加)     Memo3->Lines->Add(a[I][J]);      for (I=0;I < m;I加加)     for (J=0;J < 1;J加加) {      for (K=0;K < n;K加加)     c[I][J]+=a[I][K]*b[K][J];     Memo2->Lines->Add(c[I][J]);     } }    //--------------------------------結束    其中out1.txt: 0.5403023058681398   -0.4161468365471424   -0.9899924966004454   -0.6536436208636119   0.28366218546322625   0.960170286650366   0.7539022543433046   -0.14550003380861354   -0.9111302618846769   -0.8390715290764524   0.004425697988050785   0.8438539587324921   0.9074467814501962   0.1367372182078336   -0.7596879128588213   -0.9576594803233847   -0.27516333805159693   0.6603167082440802   0.9887046181866692   0.40808206181339196   -0.5477292602242684   -0.9999608263946371   -0.5328330203333975   0.424179007336997   0.9912028118634736   0.6469193223286404   -0.2921388087338362   -0.9626058663135666   -0.7480575296890003   0.15425144988758405   0.9147423578045313   0.8342233605065102   -0.013276747223059479   -0.8485702747846052   -0.9036922050915067   -0.12796368962740468    out2.txt: 0.8414709848078965   0.9092974268256817   0.1411200080598672   -0.7568024953079282   -0.9589242746631385   -0.27941549819892586     發表人 - 初入BCB 於 2005/03/16 10:00:48
blk5743
高階會員


發表:34
回覆:371
積分:236
註冊:2003-11-17

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-03-16 14:32:45 IP:61.66.xxx.xxx 未訂閱
引言: 謝謝 blk5743 姐的指導=>雖然顯示女,但我是男的 但是試了一整晚仍發現有些問題想跟請教 因為我是從數學軟體 Mathematica產生數值存成.txt檔 當我在BCB裡面呼叫進來並做矩陣相乘時卻發生ERROR錯誤 不知道是否跟space或是數值的位數有關 在進行5*5矩陣相乘時數值都對你的矩陣最大是6x6(m=n=6) 但進行5*5以上的矩陣相成時卻會產生 "9.7025605752885E30"的結果 這我不清楚,E是科學記號的意思吧,看來可能是位數太多了
 
float b[n][1];==>何必宣告為二維  用b[n]即可
float c[m][1];==>何必宣告為二維  用c[n]即可    for (I=0;I < m;I  )
    for (J=0;J < 1;J  )==>無意義 j一定為0 
    {
        for (K=0;K < n;K  )
            c[I][J] =a[I][K]*b[K][J];[red]==>你可以在這邊設中斷點檢查值的變化/red]
        Memo2->Lines->Add(c[I][J]);
    }    
請恕我只能提供你方向,不能也不應該幫你把這一個問題解到完
初入BCB
一般會員


發表:10
回覆:4
積分:2
註冊:2005-03-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-03-16 19:12:33 IP:61.61.xxx.xxx 未訂閱
謝謝 blk5743 兄的建議 我會在試試看的 希望今天能夠解決這個問題 謝謝
系統時間:2024-05-14 6:44:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!