我正在處理包含10250 * 2數據的3750個文本文件的數據集。文件名是「Data_F_Ind0001到Data_F_Ind3750」。我編寫了一個代碼,逐個讀取每個文件的每一列,並執行經驗模式分解(EMD)。 EMD產生了四個變量I1至I4,並對這四個變量中的每一個執行一些其他功能(巖相)。代碼的問題是,它非常慢。任何人都可以建議如何讓它快速?我感謝您的幫助。謝謝。 我已經給出了處理前37個文件中的前9個文件的示例代碼。我已經使用相同的循環來處理剩餘的文件。如何使MATLAB for循環更快
clear all;
close all;
l =1;
for k = 1:9
filename = sprintf('Data_F_Ind000%d.txt',k);
% a(:,:,k) = load(filename);
data = load (filename);
x = data(:,1);
y = data (:,2);
alldata = eemd(x,0.01,10);
I1 = alldata (1,:);
I2 = alldata (2,:);
I3 = alldata (3,:);
I4 = alldata (4,:);
imf = {I1, I2, I3, I4};
for j = 1:4
m1(k,j)= petropy(imf{j},3,1,'order');
j=j+1;
l=l+1;
end
end
,我不確定你爲什麼增加'j'和'l'。 j已經運行了值1,2,3,4。通過在循環內部增加它,你基本上正在浪費操作。另外,你沒有在任何地方使用'l'的值。 – anyanwu