今天寫程式的時候,遇到要將一個檔案分段存成很多份檔案的任務。若是手動一個一個存,就太污辱我的電腦了。於是我打算把這件事交給電腦,人腦可以用來思念黃先生。但我跟我的電腦經常溝通不良,這次也不例外。查了一整個早上的指令後,終於找到關鍵字了! num2str
Matlab中有一個指令為num2str可以將數字變成字串,指令非常直觀好記,就是number to string的火星文,真的很勾椎。藉由這個指令,我就可以用for loop來替我完成建檔的工作溜~以下是飯粒 範例 :
for(j=1:40)
clear y;
N=length(x(:,j));
L=512;
i=1;
while (i*512<N)
y(:,i)=x(512*(i-1)+1:512*i,j);
i=i+1;
end
filename=['seg_spre0103_' num2str(j) '.mat'];
save(filename,'y','i');
end
以上的範例是將一個長度N的data切成好幾段長度為512的data。其中,x有40條columns,我想將每一條都分段切割然後存成一個檔案。j代表第 j 條column,利用 num2str(j) 把 j 從數字轉乘字串,然後再把它與前後文字丟進變數"filename"裡面。執行後的結果,"filename"這個參數就代表"seg_spre0103_j.mat"這串文字,再利用for迴圈,j 就會隨著迴圈遞增而更新,我就可以將每條column的分段結果都存進新檔案裡,只要動一下手指,就存完40個檔案了:D 開心~
特別提醒,每重複一個迴圈就要注意一下參數的初始值對不對,以免上一個迴圈的結果被套到新迴圈裡變成初使值,或是該累加的東西被洗掉重來了。
留言列表