Re: [問題] 讀檔+迴圈問題 已回收

看板MATLAB作者 (阿發)時間16年前 (2010/03/11 14:42), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串3/3 (看更多)
3.txt檔案內容 LOFL CHNG 2 1077 N 1 Y 0 N -1 -1 FACT RTRN 4.txt內容 LOFL CHNG 2 1087 N 1 Y 0 N -1 -1 FACT RTRN SORRY 我內文重打 敘述的不清楚 我主要有一個矩陣 矩陣的內容物都是0和1所組成 舉例 0 0 0 1 第四個為1代表要開啟4.txt 0 0 1 1 第三和四為1代表要開啟 3.txt和4.txt 在合併txt檔前 .... 每次都必須先讀一個start的檔案 最後要加一個end.txt檔 所以希望執行第一列的時候 可以跑出來的結果是 start.txt + 4.txt + end.txt 之後在合併成一個檔案 之後去執行pp.exe(此執行檔需要用到剛剛合併的txt檔) 執行完後就刪除B內容(就是4.txt檔案) 第二列重複狀況 跑出的內容物 start.txt + 3.txt + 4.txt + end.txt 之後在合併成一個檔案 之後去執行pp.exe(此執行檔需要用到剛剛合併的txt檔) 執行完後就刪除B內容(此時變成3.txt + 4.txt) 程式碼的地方只剩下一個地方沒有出來 就是 刪除B 這個部分 不知道 是哪邊出了問題 程式碼PO在下面 煩請高人幫我看一下 謝謝幫忙 cell_end=[0 1 1 0;0 0 1 1] RowCount = 1; for k=1:2 index=find(cell_end(k,:)==1) fid1=fopen('start.txt','r') while feof(fid1)==0 for i=1:79 line1=fgetl(fid1); A(i,1)={line1}; end end fclose(fid1); for j=1:length(index) str=[num2str(index(j)),'.txt']; fid2=fopen(str,'r'); while feof(fid2)==0 line2=fgetl(fid2); B(RowCount,1)={line2}; RowCount = RowCount + 1; end fclose(fid2); % 請記得close end fid3=fopen('end.txt','r') while feof(fid3)==0 for i=1:4 line3=fgetl(fid3) C(i,1)={line3}; end end fclose(fid3); fid4=fopen('100.txt','w'); fprintf(fid4,'%s\r\n',A{:},B{:},C{:}) fclose(fid4); !C:\MATLAB6p5\work\pp.exe B=[] <--------感覺應該是這行出問題 不知道是不是要加在這個位置 end ※ 編輯: afa0525 來自: 112.105.98.237 (03/12 01:03)

03/12 19:11, , 1F
加入clear B在for k = 1:2下
03/12 19:11, 1F

03/12 19:12, , 2F
另外RowCount = 1也要加在for k =1:2下面重新計算
03/12 19:12, 2F

03/14 17:24, , 3F
RowCount = RowCount + 1 請問是這段也加在下面嗎?
03/14 17:24, 3F

03/14 17:25, , 4F
我看到了 !! 手邊沒有MATLAB 明天試驗過在上來回報結果
03/14 17:25, 4F

03/14 17:26, , 5F
先謝謝您 .... 萬分感激 !!!
03/14 17:26, 5F

03/15 10:47, , 6F
^^ 謝謝 確實是我要的 !!! ... 測試end
03/15 10:47, 6F
文章代碼(AID): #1Bc92y3U (MATLAB)
文章代碼(AID): #1Bc92y3U (MATLAB)