看板 MATLAB 關於我們 聯絡資訊
大家好,小弟是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