作者cji4284503 (HearMe)
看板MATLAB
標題[問題]讀取txt檔後的判斷式寫法
時間Wed Jul 15 16:07:16 2015
大家好,小弟是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), 來自: 101.15.18.121
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1436947639.A.D97.html
推 name0625: 一樣eval啊 設個eval(['a=SPI3_' num2str(z) '(i,5);]) 07/15 18:18
→ name0625: 判斷式就可以用a簡單寫了 07/15 18:19
→ cji4284503: 原來(i,5)要包在eval裡QQ 真的很謝謝你! 07/15 20:25
推 sunev: 建議寫一個eval,執行S=SPI3_1;,這樣後面判斷S就可以了 07/15 22:17
→ jatj: eval是非常沒有效率的寫法... 07/16 11:20