Re: [問題] 讀檔的問題
※ 引述《starmoon0918 (T毛很強滴)》之銘言:
: 問題是這樣的
: 以下是我的txt檔的table
: ---------------> x
: | ---------------- 這是一個二維陣列,我想要寫一個從第一行
: | | 00111010101000 |
: | | 11001000101110 | ========> 讀取到最後一行的所有字串。在每一行讀取
: | | 00011010111010 |
: | | 10101100011111 | 時,碰到1的時候做一個fprintf。
: v ----------------
: y
: 因為自己沒學過 Matlab 看了一些教學還是不太會,希望有人可以指點教導
: 假如我的 txt 檔名是 load_test.txt
既然你的架構是迴圈的話
那就用你迴圈的架構來試著幫你改改看
: Array = fopen('load_test.txt','r'); 有沒有錯?
基本上沒錯,就不能寫入而已
既然是純數字的話可以試試看這個
table = load('load_test.txt'); 記住你的txt的位置要跟你的m檔一樣喔
S = size(table); 就是檢查看看你的矩陣的大小,通常會給你兩個數字
第一個是列數(row)、第二個是行數(column)
通常列數對應到的是y座標、行數則是x座標
: ---------------------------
: (以下這邊不會寫Orz)
: ---------------------------
for y = 1:s(2); 因為原文是行數,所以照定義寫
for x = 1:s(1); 理由同上,這個是列數
: if( x == 1)
: w = 0 + 164*(x-1);
: t = -330 + 374*(y-1);
: fprintf(Array,'C6 T%d,474;\n',w);
: fprintf(Array,'');
: x = x + 1;
: else
: x = x + 1;
: end
: y = y + 1;
: end
: end
: 以上code很不完整,問題比較大是在讀檔的部分,怎麼知道這個table的行和列是多少
: 因為卡在這邊就不知道怎麼寫下去
接著如果要找每個1在哪個位置就很簡單了
把這個塞到x迴圈中
if table(y,x) == 1
pos = [pos ; y,x]
end
當然pos這個參數要在迴圈外就先設定好
以上的作法算是非常直觀,但是會很操matlab與電腦
其實這個有幾乎不用迴圈的作法
(例如說:用find可以一次就把矩陣中某個值的位置分布給找出來)
但這個初學者是幾乎沒辦法想像的(在下也是初學者XD)
所以可以先試試把Matlab的環境摸熟後,再學更核心的部份
共勉之
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.24.53.100
→
08/06 22:51, , 1F
08/06 22:51, 1F
討論串 (同標題文章)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章