Re: [問題]讀取txt檔後的判斷式寫法
直接改成用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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章