Re: [問題]讀取txt檔後的判斷式寫法

看板MATLAB作者 (攸藍)時間10年前 (2015/07/16 11:57), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
直接改成用cell去做吧! 做法如下: cd('yourTxtFile') % 到你存檔案的路徑去 files = ls(); % list all files in directory files = files(~cellfun(@isempty, regexp(cellstr(files),'SPI\d*_\d*.txt')), :); % capture the files you want txtFiles = cellfun(@(x) dlmread(x), cellstr(files), 'UniformOutput', false); % read all files for i = 1:size(txtFiles,1) x = txtFiles(i, 1); for j = 1:size(x, 1) if x(j, 5) < 0 % do something end end end ※ 引述《cji4284503 (HearMe)》之銘言: : 大家好,小弟是matlab新手,還請大家幫忙解惑 : 我遇到的問題不是如何讀取txt檔,而是後續寫判斷式的讀檔問題 : 前言 : 我總共有4860個txt檔要跑,每一個txt檔都是540X9的矩陣 : 檔名是以SPI3_1、SPI3_2的規律排列 : 目的是希望匯出4860個SPIsum以及SPIavg值 : 所以先以零陣列的方式給SPIsum和SPIavg值 : 依序叫出4860個txt檔這個步驟已經爬文解決 : 問題在 %這裡的問題還沒解決 這一行 : 附上部分程式碼如下 : ------------------------------------------------------ : SPIsum=zeros(4860,1);SPIavg=zeros(4860,1); : for z=1:4860 : filename=['SPI3_' num2str(z) '.txt']; : eval(['load ' filename ' -ascii']) : k=zeros(540,1); : s=zeros(540,1); : for i=3:540 : if SPI3_1(i,5)<0 %這裡的問題還沒解決 : k(i)=1; : end : if SPI3_1(i,5)<-1 : s(i)=1; : end : ------------------------------------------------------ : 這是第一個迴圈,所以程式可以判別SPI3_1.txt裡i列5行的數據 : 但到了第二個迴圈,SPI3_1我不知道怎麼讓它自動變成SPI3_2 : 讓它繼續判別下去 : 不知道有沒有哪位大大可以幫個忙呢QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.248.13.191 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1437019038.A.101.html

07/17 11:25, , 1F
感謝教學,又學到一招。
07/17 11:25, 1F
文章代碼(AID): #1LfokU41 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1LfokU41 (MATLAB)