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

看板MATLAB作者 (Steven)時間16年前 (2010/03/11 13:58), 編輯推噓2(208)
留言10則, 1人參與, 最新討論串1/3 (看更多)
※ 引述《afa0525 (阿發)》之銘言: : 先感謝之前高人幫助,還是有些許的問題 : 我想請問 下列這段程式 : 我的用意是要判別 第二和三是1的時候分別讀出他們的位置去開啟 : 2.txt和3.txt這兩個檔案,程式寫成下列樣式 : 不過在執行的時候會出現問題 : cell_end=[0 1 1 0] : for k=1:1 : index=find(cell_end(k,:)==1) 我要找到每一列第幾行是1 : for j=1:length(index) 我想做的動作是第二行和第三行是1(不知道有無寫錯) : str=[num2str(index),'.txt']    第二行是1就開2.txt第三行是1開3.txt ^^^^^ 改成index(j) : fid2=fopen('str','r')      開檔案的部分 ^^^^^ 這是開啟檔案名稱為"str"的檔案 改成str : while feof(fid2)==0          : for i=1:13          此檔案有13列 ^^^^^^^^^^^^^^ 請避免寫死 : line2=fgetl(fid2); : B(i,1)={line2};        轉成cell : end for i=1:13 line2 = .... B(i,1) = ... end 拿掉 改成 RowCount = 1 while feof(fid2) == 0 line2 = fgetl(fid2); B(RowCount,1) = {line2}; RowCount = RowCount + 1; end : end : end : end : 問題: : str = : 2 3.txt : fid2 = : -1 : ??? Error using ==> feof : Invalid fid. : Error in ==> C:\MATLAB6p5\work\Unt.m : On line 7 ==> while feof(fid2)==0 這邊的錯誤源頭在檔案開啟失敗 fid2 = -1 表示開檔失敗 : str不是跑出2.txt和3.txt我要一起讀取這兩個檔案 : feof這地方他說使用錯誤 ? 不懂為什麼  : while feof(fid2)==0 這個不是在寫說 判別文件檔到最後的位置就停 : 請高人不吝賜教。。。謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.58.14 ※ 編輯: Steven0422 來自: 218.167.58.14 (03/11 14:02)

03/11 14:02, , 1F
可以跑了 不過好像怪怪的 我應該要開2和3這兩個檔案
03/11 14:02, 1F

03/11 14:02, , 2F
不過他怎麼是開 1和2.txt 
03/11 14:02, 2F

03/11 14:02, , 3F
請問有辦法把1和2txt都存在B裡面嗎?
03/11 14:02, 3F

03/11 14:03, , 4F
如果我今天有一百列,有辦法把每一列讀取到的分別儲存嗎?
03/11 14:03, 4F

03/11 14:03, , 5F
最噢非常感謝您的幫忙
03/11 14:03, 5F

03/11 14:03, , 6F
原來我把str當成字串 難怪不能開 ︿︿"尷尬 
03/11 14:03, 6F
※ 編輯: Steven0422 來自: 218.167.58.14 (03/11 14:07) ※ 編輯: Steven0422 來自: 218.167.58.14 (03/11 14:09)

03/11 14:12, , 7F
str的部分對了! B資料那邊 還是只存到3.txt
03/11 14:12, 7F

03/11 14:13, , 8F
2.txt好像還是被洗掉,感謝研究高人改的那幾行中
03/11 14:13, 8F

03/11 14:14, , 9F
方便請問 RowCount = 1 的意思嗎 ?? 行計數器 ??
03/11 14:14, 9F

03/11 14:30, , 10F
rowcount意思了解 把每一列的變數都丟出來
03/11 14:30, 10F
文章代碼(AID): #1Bc8QNzv (MATLAB)
文章代碼(AID): #1Bc8QNzv (MATLAB)